[object Object]

← back to Fantasea Consulting

FantaSea consulting app: analysis + 6 luxury site concepts + hamburger nav

241eda30916a6b32a33ca9fa40aa42fe7716890e · 2026-07-16 11:23:06 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 241eda30916a6b32a33ca9fa40aa42fe7716890e
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Thu Jul 16 11:23:06 2026 -0700

    FantaSea consulting app: analysis + 6 luxury site concepts + hamburger nav
---
 .gitignore                    |   4 +
 build.mjs                     | 457 ++++++++++++++++++++++
 package-lock.json             | 862 ++++++++++++++++++++++++++++++++++++++++++
 package.json                  |  17 +
 public/index.html             | 235 ++++++++++++
 public/versions/chanel.html   | 141 +++++++
 public/versions/dior.html     | 141 +++++++
 public/versions/gucci.html    | 141 +++++++
 public/versions/hermes.html   | 141 +++++++
 public/versions/lv.html       | 141 +++++++
 public/versions/tiffany.html  | 141 +++++++
 public/videos/hero-poster.jpg | Bin 0 -> 282042 bytes
 public/videos/hero.mp4        | Bin 0 -> 2170508 bytes
 server.js                     |   3 +
 14 files changed, 2424 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1bcdbdc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+node_modules/
+.env*
+*.log
+.DS_Store
diff --git a/build.mjs b/build.mjs
new file mode 100644
index 0000000..09a7302
--- /dev/null
+++ b/build.mjs
@@ -0,0 +1,457 @@
+#!/usr/bin/env node
+// FantaSea Yachts — consulting deliverable generator.
+// Emits: public/index.html (the analysis app) + public/versions/*.html (6 luxury
+// redesign concepts, one per Rodeo Drive fashion house). One elegant editorial
+// template, skinned by a palette/type/copy object per house.
+import { writeFileSync, mkdirSync } from 'node:fs';
+
+const OUT = '/Users/macstudio3/Projects/fantasea-consulting/public';
+mkdirSync(`${OUT}/versions`, { recursive: true });
+
+/* ------------------------------------------------------------------ data --- */
+const BIZ = {
+  name: 'FantaSea Yachts',
+  addr: '4215 Admiralty Way, Marina del Rey, CA 90292',
+  phone: '(310) 827-2220',
+  site: 'fantaseayachts.com',
+  since: 1980,
+  fleet: 3,
+  cap: '12–250 guests',
+  events: '10,000+ events hosted',
+  entry: 'Events from $6,000',
+};
+
+// 6 luxury houses — few colors, sophisticated, distinct.
+const HOUSES = [
+  { key:'gucci',   label:'Gucci',            bg:'#0f2e22', panel:'#123829', ink:'#f4efe3', gold:'#c8a15a', line:'rgba(200,161,90,.28)',
+    disp:"'Cormorant Garamond', Georgia, serif", sans:"'Jost', system-ui, sans-serif", tag:'Heritage. Emerald. The sea as couture.', mood:'Deep forest green & antique gold — old-world crest luxury.' },
+  { key:'chanel',  label:'Chanel',           bg:'#0a0a0a', panel:'#111', ink:'#f7f5f1', gold:'#c9c4ba', line:'rgba(255,255,255,.16)',
+    disp:"'Playfair Display', 'Didot', Georgia, serif", sans:"'Montserrat', system-ui, sans-serif", tag:'Black. White. Nothing superfluous.', mood:'Monochrome couture — ivory on black, absolute restraint.' },
+  { key:'hermes',  label:'Hermès',           bg:'#141210', panel:'#1c1813', ink:'#f6ead9', gold:'#e8611f', line:'rgba(232,97,31,.30)',
+    disp:"'Cormorant Garamond', Georgia, serif", sans:"'Jost', system-ui, sans-serif", tag:'Craft, carried across the water.', mood:'Signature orange on chocolate & cream — artisanal warmth.' },
+  { key:'tiffany', label:'Tiffany & Co.',    bg:'#0b1a1a', panel:'#0f2323', ink:'#f3f7f6', gold:'#7ad0c4', line:'rgba(122,208,196,.30)',
+    disp:"'Cormorant Garamond', Georgia, serif", sans:"'Montserrat', system-ui, sans-serif", tag:'A blue box on the bay.', mood:'Robin-egg blue & white — clean, iconic, celebratory.' },
+  { key:'lv',      label:'Louis Vuitton',    bg:'#1a1109', panel:'#241708', ink:'#f2e6d2', gold:'#caa04e', line:'rgba(202,160,78,.30)',
+    disp:"'Cormorant Garamond', Georgia, serif", sans:"'Jost', system-ui, sans-serif", tag:'The art of the voyage.', mood:'Chocolate & saffron gold — the monogram travel house.' },
+  { key:'dior',    label:'Dior',             bg:'#101216', panel:'#161a20', ink:'#eef0f3', gold:'#cbb892', line:'rgba(203,184,146,.28)',
+    disp:"'Playfair Display', Georgia, serif", sans:"'Montserrat', system-ui, sans-serif", tag:'Grey skies, gold horizons, midnight sea.', mood:'Dove grey, midnight navy & champagne — couture atelier.' },
+];
+
+/* ---------------------------------------------------------- luxury version --- */
+function versionPage(h) {
+  const others = HOUSES.filter(x=>x.key!==h.key)
+    .map(x=>`<a href="/versions/${x.key}.html">${x.label}</a>`).join('');
+  return `<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — ${h.label} Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:${h.bg};--panel:${h.panel};--ink:${h.ink};--gold:${h.gold};--line:${h.line}}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:${h.sans};font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:${h.disp}}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:${h.disp};font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:${h.disp};font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:${h.sans};font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:${h.sans}!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:${h.sans}!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:${h.disp};font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:${h.disp};font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:${h.sans};font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:${h.disp};font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:${h.disp};font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:${h.disp};font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:${h.disp};font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:${h.disp};font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:${h.sans};font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · ${h.label} palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — ${h.label}</div>
+  <div class="houses">${others}</div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. ${BIZ.since}</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">${h.tag}</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating ${BIZ.cap}, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since ${BIZ.since}</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since ${BIZ.since}, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>${BIZ.addr}</div>
+    <div><b>Reservations</b>${BIZ.phone}</div>
+    <div><b>Online</b>${BIZ.site}</div>
+    <div><b>From</b>$6,000 · ${BIZ.cap}</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>${h.label} palette concept — for discussion</span>
+  <span>© ${BIZ.since}–2026</span>
+</footer>
+</body></html>`;
+}
+
+/* ------------------------------------------------------------- main report --- */
+const houseTiles = HOUSES.map(h=>`
+  <a class="vtile" href="/versions/${h.key}.html" target="_blank" style="--vb:${h.bg};--vi:${h.ink};--vg:${h.gold}">
+    <div class="vswatch"><span style="background:${h.bg}"></span><span style="background:${h.panel}"></span><span style="background:${h.gold}"></span><span style="background:${h.ink}"></span></div>
+    <div class="vname">${h.label}</div>
+    <div class="vmood">${h.mood}</div>
+    <div class="vopen">Open live concept →</div>
+  </a>`).join('');
+
+const competitors = [
+  ['FantaSea Yachts (you)','Weddings · corporate · dinner','12–250','~4.75★ · 233 Yelp','Since 1980, 3 yachts, 10k+ events — the incumbent brand'],
+  ['City Cruises (Hornblower)','Dinner cruises · public + private','2–600+','~4.0★ · national','Corporate-owned scale, ticketed public cruises, big ad budget'],
+  ['The Legend Yacht','Whale-watch · sunset · weddings','≤41','~4.5★','Vintage Chris-Craft charm, small capacity, niche'],
+  ['The Duchess Yacht','Nightclub-style parties','≤120','~4.3★','Lounge/nightlife angle, younger party market'],
+  ['Luxury Liners','Party yacht rentals','≤50+','~4.4★','Rental-marketplace positioning, price-forward'],
+  ['Santa Monica Windjammers','Wedding venue (club)','varies','~4.6★','Yacht-club setting, member-driven, weddings'],
+];
+const compRows = competitors.map((c,i)=>`<tr class="${i===0?'you':''}"><td>${c[0]}</td><td>${c[1]}</td><td>${c[2]}</td><td>${c[3]}</td><td>${c[4]}</td></tr>`).join('');
+
+const adChannels = [
+  ['The Knot / WeddingWire / Zola','Weddings','★★★★★','Highest-intent bridal traffic. You already have 41 WeddingWire reviews — pay to rank #1 in Marina del Rey boat-weddings.'],
+  ['Google Ads (Search)','Local high-intent','★★★★★','Own "yacht charter marina del rey", "boat wedding LA", "corporate yacht party". City Cruises bids here — you must too.'],
+  ['Google Business Profile','Local / maps','★★★★★','Free. Post weekly, seed photos, answer every review. Drives the map-pack for "yacht charter near me".'],
+  ['Instagram / Meta Ads','Awareness · retargeting','★★★★☆','Sunset reels convert for luxury events. Retarget site + Knot visitors. Lookalikes off past-client list.'],
+  ['Yelp Ads + review response','Local trust','★★★★☆','233 reviews = strong. Respond to every review; Yelp Ads defend the category page from competitors.'],
+  ['Peerspace / Cvent / LinkedIn','Corporate events','★★★★☆','Where planners source offsite venues + holiday parties. List the fleet as an event space.'],
+  ['GetMyBoat / Sailo (OTA)','Charter marketplace','★★★☆☆','Incremental fill for open dates; watch commissions — use for gaps, not core weddings.'],
+  ['TikTok','Gen-Z / viral reach','★★★☆☆','Low cost, high upside for sunset/proposal content. Test, don\'t bet the budget.'],
+];
+const adRows = adChannels.map(a=>`<tr><td><b>${a[0]}</b></td><td>${a[1]}</td><td class="stars">${a[2]}</td><td>${a[3]}</td></tr>`).join('');
+
+const calendar = [
+  ['Jan','Valentine\'s pre-sale · corporate Q1 kickoffs','Launch Feb proposal/date-night charters; email past clients'],
+  ['Feb','Valentine\'s sunset dinners (peak romance)','Google + IG ads on "romantic things to do LA"; sell-out weekend'],
+  ['Mar','Whale-watch season · spring weddings open','Push whale-watch + wedding-season inquiries; Knot featured'],
+  ['Apr','Grad/prom + Mother\'s Day build','Book proms & grad nights; Mother\'s Day brunch cruises'],
+  ['May','WEDDING SEASON begins · Mother\'s Day','Max ad spend on weddings; secure summer Saturdays'],
+  ['Jun','PEAK: weddings + grad + summer tourism','Highest demand — raise rates, prioritize high-value galas'],
+  ['Jul','PEAK: July 4th + summer corporate','4th-of-July fireworks cruises (premium); corporate summer parties'],
+  ['Aug','PEAK summer · early holiday-party outreach','Start selling Nov/Dec corporate holiday galas NOW'],
+  ['Sep','Weddings + corporate Q4 planning','Fall wedding push; lock holiday-party corporate contracts'],
+  ['Oct','Weddings + Halloween + holiday sell-in','Halloween party cruises; finalize December calendar'],
+  ['Nov','CORPORATE HOLIDAY GALAS · Thanksgiving','Holiday-party revenue peak; NYE pre-sale opens'],
+  ['Dec','NYE (highest ticket) + holiday parties','Sell NYE at premium; whale-watch season; capture reviews'],
+];
+const calRows = calendar.map(c=>`<tr><td class="mo">${c[0]}</td><td>${c[1]}</td><td class="act">${c[2]}</td></tr>`).join('');
+
+const partners = [
+  ['Rodeo Drive luxury boutiques (Gucci, Chanel, Dior)','Co-host aboard trunk shows & styling soirées; cross-refer VIP clienteling lists. Their client is your client.'],
+  ['Beverly Hills exotic-car dealers (Rolls-Royce, Ferrari, Bentley)','“Arrive by yacht, leave by Rolls” proposal & anniversary packages; shared affluent CRM and event swaps.'],
+  ['High-end jewelers (engagement rings)','Bundle a private sunset proposal charter with the ring purchase — the jeweler closes the ring, you own the moment.'],
+  ['Private jet & helicopter charters (Blade, JSX, Clay Lacy)','“Jet-to-yacht” luxury itineraries; reciprocal referral fees between two high-net-worth travel brands.'],
+  ['Beverly Hills / MDR luxury hotels & concierges (Waldorf, Ritz-Carlton)','Concierge referral commission for guest charters; be the on-water excursion every five-star front desk recommends.'],
+  ['Luxury wedding planners & couture florists','Preferred-vendor pacts — weddings are your core revenue; own the planner rolodex before competitors do.'],
+  ['Beverly Hills med-spas, cosmetic surgeons & celeb dentists','Client-appreciation & influencer cruises; their glossy patient base is prime for milestone charters.'],
+  ['VC firms, law firms & commercial real-estate brokers','Deal-closing dinners, investor galas and summer offsites — recurring corporate contracts, not one-offs.'],
+  ['Film/TV production & location scouts','Yacht as a filming location + wrap parties; Marina del Rey is film-permit friendly = a steady B2B line.'],
+  ['Champagne houses, wineries & celebrity chefs','Co-branded pairing dinner cruises — a marquee recurring event series that sells itself on the name.'],
+];
+const partnerRows = partners.map((p,i)=>`<div class="pcard"><div class="pnum">${String(i+1).padStart(2,'0')}</div><div><h4>${p[0]}</h4><p>${p[1]}</p></div></div>`).join('');
+
+const CATS = [
+  ['summary','Executive Summary'],['reputation','Reputation & Yelp'],['competitors','Competitors'],
+  ['advertising','Where to Advertise'],['timing','Timing & Cadence'],['audit','Website Audit'],
+  ['suggested','Suggested New Websites'],['partners','Unlikely Partners'],['videos','Example Videos'],['roadmap','90-Day Roadmap'],
+];
+const navLinks = CATS.map(c=>`<a href="#${c[0]}">${c[1]}</a>`).join('');
+
+const mainApp = `<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Growth Strategy</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#0c1512;--panel:#111e19;--ink:#eef2ef;--gold:#c8a15a;--line:rgba(200,161,90,.22);--dim:rgba(238,242,239,.66)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Jost',system-ui,sans-serif;font-weight:300;line-height:1.7;letter-spacing:.015em;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond',Georgia,serif}
+a{color:inherit;text-decoration:none}
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px 34px;background:linear-gradient(180deg,rgba(12,21,18,.92),rgba(12,21,18,0));backdrop-filter:blur(4px)}
+.brand{font-family:'Cormorant Garamond',serif;font-size:20px;letter-spacing:.32em;text-transform:uppercase}
+.brand small{display:block;font-family:'Jost';font-size:9px;letter-spacing:.34em;color:var(--gold);margin-top:2px}
+.burger{width:30px;height:20px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.6px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:1px}.burger span:nth-child(2){top:9px}.burger span:nth-child(3){top:17px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* hamburger dropdown — all categories */
+.menu{position:fixed;top:0;right:0;bottom:0;width:min(420px,86vw);z-index:39;background:var(--panel);border-left:1px solid var(--line);transform:translateX(100%);transition:.42s cubic-bezier(.6,0,.2,1);padding:96px 44px;overflow:auto}
+body.nav .menu{transform:none}
+body.nav .scrim{opacity:1;pointer-events:auto}
+.scrim{position:fixed;inset:0;z-index:38;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.42s}
+.menu .mh{font-family:'Cormorant Garamond',serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
+.menu a{display:block;font-family:'Cormorant Garamond',serif;font-size:26px;padding:11px 0;border-bottom:1px solid var(--line);opacity:.85;transition:.25s}
+.menu a:hover{opacity:1;color:var(--gold);padding-left:8px}
+/* hero */
+.hero{min-height:96vh;position:relative;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,7vw,120px);overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,21,18,.92),rgba(12,21,18,.55) 55%,rgba(12,21,18,.3));z-index:1}
+.hero .in{position:relative;z-index:2;max-width:900px}
+.kick{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(44px,7.5vw,104px);line-height:1;letter-spacing:.01em}
+.hero p{max-width:60ch;margin-top:24px;font-size:18px;color:var(--dim)}
+.metrics{display:flex;flex-wrap:wrap;gap:44px;margin-top:46px}
+.metrics .m .v{font-family:'Cormorant Garamond',serif;font-size:38px;color:var(--gold);line-height:1}
+.metrics .m .l{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-top:6px}
+section{padding:clamp(64px,9vw,120px) clamp(24px,7vw,120px);border-top:1px solid var(--line);scroll-margin-top:64px}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
+h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(30px,4.4vw,54px);line-height:1.05;max-width:20ch}
+.lead{max-width:70ch;color:var(--dim);margin-top:22px;font-size:17px}
+table{width:100%;border-collapse:collapse;margin-top:44px;font-size:14px}
+th,td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:top}
+th{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:400}
+tr.you{background:rgba(200,161,90,.08)}tr.you td:first-child{color:var(--gold)}
+.stars{color:var(--gold);letter-spacing:2px}
+td.mo{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:18px;width:70px}
+td.act{color:var(--ink);opacity:.9}
+.cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line);margin-top:44px}
+.cards2 .c{background:var(--bg);padding:34px 30px}
+.cards2 .c h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:22px;color:var(--gold);margin-bottom:10px}
+.cards2 .c p{color:var(--dim);font-size:14px}
+.flag{color:#e8a0a0}.good{color:#9fd6b0}
+/* suggested websites gallery */
+.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:48px}
+.vtile{background:var(--vb);border:1px solid var(--line);padding:30px 28px;transition:.3s;position:relative;overflow:hidden}
+.vtile:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.5)}
+.vswatch{display:flex;height:38px;border-radius:3px;overflow:hidden;margin-bottom:22px}
+.vswatch span{flex:1}
+.vname{font-family:'Cormorant Garamond',serif;font-size:27px;color:var(--vi)}
+.vmood{color:var(--vi);opacity:.72;font-size:13px;margin-top:8px;min-height:38px}
+.vopen{margin-top:18px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--vg)}
+/* partners */
+.pcard{display:flex;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}
+.pnum{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--gold);min-width:44px}
+.pcard h4{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:21px;margin-bottom:6px}
+.pcard p{color:var(--dim);font-size:15px}
+/* videos */
+.vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:44px}
+.vid{background:var(--panel);border:1px solid var(--line);padding:26px}
+.vid .t{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--gold)}
+.vid .s{font-size:13px;color:var(--dim);margin:10px 0 14px}
+.vid .a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid var(--line);padding-top:12px}
+.vid .pending{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);opacity:.7}
+.road{list-style:none;margin-top:44px}
+.road li{padding:22px 0 22px 0;border-bottom:1px solid var(--line);display:flex;gap:26px}
+.road .w{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:15px;letter-spacing:.2em;text-transform:uppercase;min-width:130px}
+.road .d{color:var(--dim)}
+footer{padding:60px clamp(24px,7vw,120px);border-top:1px solid var(--line);color:var(--dim);font-size:12px;letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px}
+@media(max-width:640px){.metrics{gap:26px}}
+</style></head>
+<body>
+<header class="bar">
+  <a class="brand" href="#">FantaSea<small>Growth Strategy · 2026</small></a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<div class="scrim" onclick="document.body.classList.remove('nav')"></div>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <div class="mh">Contents</div>
+  ${navLinks}
+</nav>
+
+<div class="hero" id="summary">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kick">Marina del Rey · Confidential strategy brief</div>
+    <h1 class="disp">FantaSea Yachts</h1>
+    <p>A 40-year, family-owned charter brand with a commanding reputation — and clear, unclaimed upside in advertising, digital presentation, and high-net-worth partnerships. This brief maps where the growth is and exactly when to move.</p>
+    <div class="metrics">
+      <div class="m"><div class="v">~4.75★</div><div class="l">300+ reviews</div></div>
+      <div class="m"><div class="v">1980</div><div class="l">Est. · family-owned</div></div>
+      <div class="m"><div class="v">10,000+</div><div class="l">Events hosted</div></div>
+      <div class="m"><div class="v">$6k+</div><div class="l">Avg. event entry</div></div>
+    </div>
+  </div>
+</div>
+
+<section id="reputation">
+  <div class="eyebrow">01 · Reputation & Reviews</div>
+  <h2 class="disp">You are winning on trust — now monetize it.</h2>
+  <p class="lead">FantaSea holds roughly <b>4.75★ across 300+ reviews</b> — 233 on Yelp, 41 on WeddingWire, 55 on Birdeye. That is a top-tier reputation in the category. The gap is not quality; it is <b>visibility and conversion</b> of that reputation into booked charters.</p>
+  <div class="cards2">
+    <div class="c"><h3>Praised</h3><p class="good">Attentive crew · seamless event coordination · dining quality · the on-water views. Decades of consistency.</p></div>
+    <div class="c"><h3>Watch-outs</h3><p class="flag">Premium price point ($6k+ entry) needs justifying up-front · respond to every review (esp. negatives) · keep review recency fresh monthly.</p></div>
+    <div class="c"><h3>Action</h3><p>Automate a post-event review ask (Yelp + Google + Knot). Respond to 100% of reviews within 48h. Feature 5★ quotes on the site & ads.</p></div>
+  </div>
+</section>
+
+<section id="competitors">
+  <div class="eyebrow">02 · Competitive Landscape</div>
+  <h2 class="disp">The incumbent brand vs. the field.</h2>
+  <p class="lead">FantaSea's edge is legacy, capacity range, and review depth. The threats are City Cruises' national ad budget and a wave of rental-marketplace operators competing on price.</p>
+  <table><thead><tr><th>Operator</th><th>Focus</th><th>Capacity</th><th>Reputation</th><th>Positioning</th></tr></thead><tbody>${compRows}</tbody></table>
+  <p class="lead"><b>Takeaway:</b> Don't fight rentals on price. Win on the two things they can't fake — a 40-year wedding track record and 250-guest capacity. Position as <i>the</i> luxury event yacht, not a boat rental.</p>
+</section>
+
+<section id="advertising">
+  <div class="eyebrow">03 · Where to Advertise</div>
+  <h2 class="disp">Buy intent where the affluent are already searching.</h2>
+  <p class="lead">Ranked by ROI for a wedding-and-corporate luxury charter. The pattern: own <b>high-intent search + bridal marketplaces</b> first, layer <b>social awareness</b> for retargeting.</p>
+  <table><thead><tr><th>Channel</th><th>Best for</th><th>Priority</th><th>Why / play</th></tr></thead><tbody>${adRows}</tbody></table>
+</section>
+
+<section id="timing">
+  <div class="eyebrow">04 · Timing & Cadence</div>
+  <h2 class="disp">Sell each season one season early.</h2>
+  <p class="lead">SoCal charter demand is sharply seasonal. The money is made by <b>booking peak dates months ahead</b> — sell holiday galas in August, NYE in November, wedding Saturdays by spring.</p>
+  <table><thead><tr><th>Month</th><th>Demand driver</th><th>The move</th></tr></thead><tbody>${calRows}</tbody></table>
+  <p class="lead"><b>Posting rhythm:</b> Instagram/TikTok 4–5×/week, sunsets posted <b>Thu–Sat 5–8pm</b> (planning window). Email past clients monthly. Always be selling the season 60–90 days out.</p>
+</section>
+
+<section id="audit">
+  <div class="eyebrow">05 · Website Audit</div>
+  <h2 class="disp">A trusted brand on a slow, dated site.</h2>
+  <p class="lead">Live audit of fantaseayachts.com (WordPress on WP Engine, behind Cloudflare):</p>
+  <div class="cards2">
+    <div class="c"><h3>Speed</h3><p class="flag">Homepage weighs ~<b>292 KB of HTML alone</b> (before images/scripts) — heavy for mobile. Luxury buyers bounce on slow first paint.</p></div>
+    <div class="c"><h3>First impression</h3><p>No full-screen hero <b>video</b>. The #1 upgrade — motion of the yacht at sunset sells the fantasy instantly (the Gucci/Dior approach).</p></div>
+    <div class="c"><h3>Navigation</h3><p>Move to a clean <b>hamburger + full-screen menu</b> — fewer, more confident choices; reads as couture, not clutter.</p></div>
+    <div class="c"><h3>Conversion</h3><p>Put phone + "Charter now" persistently in reach; surface 4.75★ social proof and pricing-from up front to qualify leads.</p></div>
+  </div>
+  <p class="lead">Six ready-to-review redesign concepts below — each in a Rodeo Drive luxury-house palette, with the hero-video + hamburger pattern already built.</p>
+</section>
+
+<section id="suggested">
+  <div class="eyebrow">06 · Suggested New Websites</div>
+  <h2 class="disp">Six luxury directions. One is live-clickable each.</h2>
+  <p class="lead">Sophisticated, few-colored, wedding-grade — modeled on the great Rodeo Drive fashion houses. Each opens as a working full-screen concept with a cinematic hero video and hamburger navigation. Pick a direction; we build it out.</p>
+  <div class="vgrid">${houseTiles}</div>
+</section>
+
+<section id="partners">
+  <div class="eyebrow">07 · Unlikely Partners</div>
+  <h2 class="disp">Ten referral engines hiding in plain sight.</h2>
+  <p class="lead">Your buyer is already spending at these brands. Co-marketing swaps a $0-CAC stream of high-net-worth referrals for a few hosted events a year.</p>
+  ${partnerRows}
+</section>
+
+<section id="videos">
+  <div class="eyebrow">08 · Example Videos</div>
+  <h2 class="disp">Four 20-second brand films — one per recommendation.</h2>
+  <p class="lead">HeyGen presenter clips (15–30s each): fade-in, music bed, and a closing <b>action item</b>. Drop-in for Instagram Reels, the site, and the pitch.</p>
+  <div class="vids">
+    <div class="vid"><div class="t">01 · Reputation</div><div class="s">“You’re rated 4.75★ across 300+ reviews.”</div><div class="a">▶ Action: reply to every review in 48h + auto-ask each guest.</div><div class="pending" data-vid="reputation">● rendering…</div></div>
+    <div class="vid"><div class="t">02 · Advertising</div><div class="s">“Your buyers are searching right now.”</div><div class="a">▶ Action: launch Google Ads + The Knot featured listing this week.</div><div class="pending" data-vid="advertising">● rendering…</div></div>
+    <div class="vid"><div class="t">03 · Competitors</div><div class="s">“Don’t fight rentals on price.”</div><div class="a">▶ Action: reposition as THE luxury event yacht — legacy + 250 guests.</div><div class="pending" data-vid="competitors">● rendering…</div></div>
+    <div class="vid"><div class="t">04 · Timing</div><div class="s">“Sell each season one season early.”</div><div class="a">▶ Action: open holiday-gala + NYE pre-sale now; book peak Saturdays.</div><div class="pending" data-vid="timing">● rendering…</div></div>
+  </div>
+</section>
+
+<section id="roadmap">
+  <div class="eyebrow">09 · 90-Day Roadmap</div>
+  <h2 class="disp">What to do, in order.</h2>
+  <ul class="road">
+    <li><div class="w">Weeks 1–2</div><div class="d">Turn on review automation (Yelp/Google/Knot) + reply to all past reviews. Claim/optimize Google Business Profile. Pick a website direction.</div></li>
+    <li><div class="w">Weeks 3–6</div><div class="d">Launch Google Ads + The Knot/WeddingWire featured listing. Ship the new hero-video homepage. Begin 4–5×/week Instagram cadence.</div></li>
+    <li><div class="w">Weeks 6–10</div><div class="d">Open holiday-gala + NYE pre-sale. Sign 3 “unlikely partner” referral swaps (jeweler, luxury hotel, wedding planner).</div></li>
+    <li><div class="w">Weeks 10–13</div><div class="d">Retargeting on Meta off site + Knot traffic. Publish the 4 brand films as Reels. Measure cost-per-booked-charter; double down on the winner.</div></li>
+  </ul>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Growth Strategy Brief</span>
+  <span>Prepared for the ${new Date().getFullYear()} consulting review</span>
+  <span>Confidential — for discussion</span>
+</footer>
+</body></html>`;
+
+writeFileSync(`${OUT}/index.html`, mainApp);
+for (const h of HOUSES) writeFileSync(`${OUT}/versions/${h.key}.html`, versionPage(h));
+console.log(`Wrote index.html + ${HOUSES.length} versions:`, HOUSES.map(h=>h.key).join(', '));
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..05f0a4f
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,862 @@
+{
+  "name": "fantasea-consulting",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "fantasea-consulting",
+      "version": "1.0.0",
+      "license": "ISC",
+      "dependencies": {
+        "express": "^5.2.1"
+      }
+    },
+    "node_modules/accepts": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+      "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "^3.0.0",
+        "negotiator": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/body-parser": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
+      "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "^3.1.2",
+        "content-type": "^2.0.0",
+        "debug": "^4.4.3",
+        "http-errors": "^2.0.1",
+        "iconv-lite": "^0.7.2",
+        "on-finished": "^2.4.1",
+        "qs": "^6.15.2",
+        "raw-body": "^3.0.2",
+        "type-is": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/body-parser/node_modules/content-type": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
+      "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/bytes": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+      "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/call-bound": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+      "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "get-intrinsic": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/content-disposition": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
+      "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/content-type": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+      "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie-signature": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
+      "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.6.0"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/depd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+      "license": "MIT"
+    },
+    "node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+      "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-object-atoms": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
+      "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+      "license": "MIT"
+    },
+    "node_modules/etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
+      "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "^2.0.0",
+        "body-parser": "^2.2.1",
+        "content-disposition": "^1.0.0",
+        "content-type": "^1.0.5",
+        "cookie": "^0.7.1",
+        "cookie-signature": "^1.2.1",
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "finalhandler": "^2.1.0",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.0",
+        "merge-descriptors": "^2.0.0",
+        "mime-types": "^3.0.0",
+        "on-finished": "^2.4.1",
+        "once": "^1.4.0",
+        "parseurl": "^1.3.3",
+        "proxy-addr": "^2.0.7",
+        "qs": "^6.14.0",
+        "range-parser": "^1.2.1",
+        "router": "^2.2.0",
+        "send": "^1.1.0",
+        "serve-static": "^2.2.0",
+        "statuses": "^2.0.1",
+        "type-is": "^2.0.1",
+        "vary": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/finalhandler": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
+      "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "on-finished": "^2.4.1",
+        "parseurl": "^1.3.3",
+        "statuses": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/forwarded": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+      "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "license": "MIT",
+      "dependencies": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+      "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
+      "license": "MIT",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/http-errors": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+      "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+      "license": "MIT",
+      "dependencies": {
+        "depd": "~2.0.0",
+        "inherits": "~2.0.4",
+        "setprototypeof": "~1.2.0",
+        "statuses": "~2.0.2",
+        "toidentifier": "~1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz",
+      "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "license": "ISC"
+    },
+    "node_modules/ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/is-promise": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+      "license": "MIT"
+    },
+    "node_modules/math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/media-typer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+      "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/merge-descriptors": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+      "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.54.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+      "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+      "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "^1.54.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "license": "MIT"
+    },
+    "node_modules/negotiator": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+      "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.13.4",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+      "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/on-finished": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+      "license": "MIT",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "license": "ISC",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/path-to-regexp": {
+      "version": "8.4.2",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
+      "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
+      "license": "MIT",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/proxy-addr": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+      "license": "MIT",
+      "dependencies": {
+        "forwarded": "0.2.0",
+        "ipaddr.js": "1.9.1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/qs": {
+      "version": "6.15.3",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
+      "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "es-define-property": "^1.0.1",
+        "side-channel": "^1.1.1"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/range-parser": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz",
+      "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/raw-body": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+      "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.7.0",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/router": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
+      "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "is-promise": "^4.0.0",
+        "parseurl": "^1.3.3",
+        "path-to-regexp": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "license": "MIT"
+    },
+    "node_modules/send": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+      "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.3",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.1",
+        "mime-types": "^3.0.2",
+        "ms": "^2.1.3",
+        "on-finished": "^2.4.1",
+        "range-parser": "^1.2.1",
+        "statuses": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/serve-static": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+      "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
+      "license": "MIT",
+      "dependencies": {
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "parseurl": "^1.3.3",
+        "send": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/setprototypeof": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+      "license": "ISC"
+    },
+    "node_modules/side-channel": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
+      "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.4",
+        "side-channel-list": "^1.0.1",
+        "side-channel-map": "^1.0.1",
+        "side-channel-weakmap": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-list": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+      "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+      "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-weakmap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+      "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3",
+        "side-channel-map": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/statuses": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+      "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/toidentifier": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/type-is": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz",
+      "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
+      "license": "MIT",
+      "dependencies": {
+        "content-type": "^2.0.0",
+        "media-typer": "^1.1.0",
+        "mime-types": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/type-is/node_modules/content-type": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
+      "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "license": "ISC"
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..bf6a597
--- /dev/null
+++ b/package.json
@@ -0,0 +1,17 @@
+{
+  "name": "fantasea-consulting",
+  "version": "1.0.0",
+  "description": "",
+  "main": "server.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "start": "node server.js"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "type": "commonjs",
+  "dependencies": {
+    "express": "^5.2.1"
+  }
+}
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..c7c7b51
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,235 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Growth Strategy</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#0c1512;--panel:#111e19;--ink:#eef2ef;--gold:#c8a15a;--line:rgba(200,161,90,.22);--dim:rgba(238,242,239,.66)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Jost',system-ui,sans-serif;font-weight:300;line-height:1.7;letter-spacing:.015em;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond',Georgia,serif}
+a{color:inherit;text-decoration:none}
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px 34px;background:linear-gradient(180deg,rgba(12,21,18,.92),rgba(12,21,18,0));backdrop-filter:blur(4px)}
+.brand{font-family:'Cormorant Garamond',serif;font-size:20px;letter-spacing:.32em;text-transform:uppercase}
+.brand small{display:block;font-family:'Jost';font-size:9px;letter-spacing:.34em;color:var(--gold);margin-top:2px}
+.burger{width:30px;height:20px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.6px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:1px}.burger span:nth-child(2){top:9px}.burger span:nth-child(3){top:17px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* hamburger dropdown — all categories */
+.menu{position:fixed;top:0;right:0;bottom:0;width:min(420px,86vw);z-index:39;background:var(--panel);border-left:1px solid var(--line);transform:translateX(100%);transition:.42s cubic-bezier(.6,0,.2,1);padding:96px 44px;overflow:auto}
+body.nav .menu{transform:none}
+body.nav .scrim{opacity:1;pointer-events:auto}
+.scrim{position:fixed;inset:0;z-index:38;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.42s}
+.menu .mh{font-family:'Cormorant Garamond',serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
+.menu a{display:block;font-family:'Cormorant Garamond',serif;font-size:26px;padding:11px 0;border-bottom:1px solid var(--line);opacity:.85;transition:.25s}
+.menu a:hover{opacity:1;color:var(--gold);padding-left:8px}
+/* hero */
+.hero{min-height:96vh;position:relative;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,7vw,120px);overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,21,18,.92),rgba(12,21,18,.55) 55%,rgba(12,21,18,.3));z-index:1}
+.hero .in{position:relative;z-index:2;max-width:900px}
+.kick{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(44px,7.5vw,104px);line-height:1;letter-spacing:.01em}
+.hero p{max-width:60ch;margin-top:24px;font-size:18px;color:var(--dim)}
+.metrics{display:flex;flex-wrap:wrap;gap:44px;margin-top:46px}
+.metrics .m .v{font-family:'Cormorant Garamond',serif;font-size:38px;color:var(--gold);line-height:1}
+.metrics .m .l{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-top:6px}
+section{padding:clamp(64px,9vw,120px) clamp(24px,7vw,120px);border-top:1px solid var(--line);scroll-margin-top:64px}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
+h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(30px,4.4vw,54px);line-height:1.05;max-width:20ch}
+.lead{max-width:70ch;color:var(--dim);margin-top:22px;font-size:17px}
+table{width:100%;border-collapse:collapse;margin-top:44px;font-size:14px}
+th,td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:top}
+th{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:400}
+tr.you{background:rgba(200,161,90,.08)}tr.you td:first-child{color:var(--gold)}
+.stars{color:var(--gold);letter-spacing:2px}
+td.mo{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:18px;width:70px}
+td.act{color:var(--ink);opacity:.9}
+.cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line);margin-top:44px}
+.cards2 .c{background:var(--bg);padding:34px 30px}
+.cards2 .c h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:22px;color:var(--gold);margin-bottom:10px}
+.cards2 .c p{color:var(--dim);font-size:14px}
+.flag{color:#e8a0a0}.good{color:#9fd6b0}
+/* suggested websites gallery */
+.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:48px}
+.vtile{background:var(--vb);border:1px solid var(--line);padding:30px 28px;transition:.3s;position:relative;overflow:hidden}
+.vtile:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.5)}
+.vswatch{display:flex;height:38px;border-radius:3px;overflow:hidden;margin-bottom:22px}
+.vswatch span{flex:1}
+.vname{font-family:'Cormorant Garamond',serif;font-size:27px;color:var(--vi)}
+.vmood{color:var(--vi);opacity:.72;font-size:13px;margin-top:8px;min-height:38px}
+.vopen{margin-top:18px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--vg)}
+/* partners */
+.pcard{display:flex;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}
+.pnum{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--gold);min-width:44px}
+.pcard h4{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:21px;margin-bottom:6px}
+.pcard p{color:var(--dim);font-size:15px}
+/* videos */
+.vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:44px}
+.vid{background:var(--panel);border:1px solid var(--line);padding:26px}
+.vid .t{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--gold)}
+.vid .s{font-size:13px;color:var(--dim);margin:10px 0 14px}
+.vid .a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid var(--line);padding-top:12px}
+.vid .pending{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);opacity:.7}
+.road{list-style:none;margin-top:44px}
+.road li{padding:22px 0 22px 0;border-bottom:1px solid var(--line);display:flex;gap:26px}
+.road .w{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:15px;letter-spacing:.2em;text-transform:uppercase;min-width:130px}
+.road .d{color:var(--dim)}
+footer{padding:60px clamp(24px,7vw,120px);border-top:1px solid var(--line);color:var(--dim);font-size:12px;letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px}
+@media(max-width:640px){.metrics{gap:26px}}
+</style></head>
+<body>
+<header class="bar">
+  <a class="brand" href="#">FantaSea<small>Growth Strategy · 2026</small></a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<div class="scrim" onclick="document.body.classList.remove('nav')"></div>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <div class="mh">Contents</div>
+  <a href="#summary">Executive Summary</a><a href="#reputation">Reputation & Yelp</a><a href="#competitors">Competitors</a><a href="#advertising">Where to Advertise</a><a href="#timing">Timing & Cadence</a><a href="#audit">Website Audit</a><a href="#suggested">Suggested New Websites</a><a href="#partners">Unlikely Partners</a><a href="#videos">Example Videos</a><a href="#roadmap">90-Day Roadmap</a>
+</nav>
+
+<div class="hero" id="summary">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kick">Marina del Rey · Confidential strategy brief</div>
+    <h1 class="disp">FantaSea Yachts</h1>
+    <p>A 40-year, family-owned charter brand with a commanding reputation — and clear, unclaimed upside in advertising, digital presentation, and high-net-worth partnerships. This brief maps where the growth is and exactly when to move.</p>
+    <div class="metrics">
+      <div class="m"><div class="v">~4.75★</div><div class="l">300+ reviews</div></div>
+      <div class="m"><div class="v">1980</div><div class="l">Est. · family-owned</div></div>
+      <div class="m"><div class="v">10,000+</div><div class="l">Events hosted</div></div>
+      <div class="m"><div class="v">$6k+</div><div class="l">Avg. event entry</div></div>
+    </div>
+  </div>
+</div>
+
+<section id="reputation">
+  <div class="eyebrow">01 · Reputation & Reviews</div>
+  <h2 class="disp">You are winning on trust — now monetize it.</h2>
+  <p class="lead">FantaSea holds roughly <b>4.75★ across 300+ reviews</b> — 233 on Yelp, 41 on WeddingWire, 55 on Birdeye. That is a top-tier reputation in the category. The gap is not quality; it is <b>visibility and conversion</b> of that reputation into booked charters.</p>
+  <div class="cards2">
+    <div class="c"><h3>Praised</h3><p class="good">Attentive crew · seamless event coordination · dining quality · the on-water views. Decades of consistency.</p></div>
+    <div class="c"><h3>Watch-outs</h3><p class="flag">Premium price point ($6k+ entry) needs justifying up-front · respond to every review (esp. negatives) · keep review recency fresh monthly.</p></div>
+    <div class="c"><h3>Action</h3><p>Automate a post-event review ask (Yelp + Google + Knot). Respond to 100% of reviews within 48h. Feature 5★ quotes on the site & ads.</p></div>
+  </div>
+</section>
+
+<section id="competitors">
+  <div class="eyebrow">02 · Competitive Landscape</div>
+  <h2 class="disp">The incumbent brand vs. the field.</h2>
+  <p class="lead">FantaSea's edge is legacy, capacity range, and review depth. The threats are City Cruises' national ad budget and a wave of rental-marketplace operators competing on price.</p>
+  <table><thead><tr><th>Operator</th><th>Focus</th><th>Capacity</th><th>Reputation</th><th>Positioning</th></tr></thead><tbody><tr class="you"><td>FantaSea Yachts (you)</td><td>Weddings · corporate · dinner</td><td>12–250</td><td>~4.75★ · 233 Yelp</td><td>Since 1980, 3 yachts, 10k+ events — the incumbent brand</td></tr><tr class=""><td>City Cruises (Hornblower)</td><td>Dinner cruises · public + private</td><td>2–600+</td><td>~4.0★ · national</td><td>Corporate-owned scale, ticketed public cruises, big ad budget</td></tr><tr class=""><td>The Legend Yacht</td><td>Whale-watch · sunset · weddings</td><td>≤41</td><td>~4.5★</td><td>Vintage Chris-Craft charm, small capacity, niche</td></tr><tr class=""><td>The Duchess Yacht</td><td>Nightclub-style parties</td><td>≤120</td><td>~4.3★</td><td>Lounge/nightlife angle, younger party market</td></tr><tr class=""><td>Luxury Liners</td><td>Party yacht rentals</td><td>≤50+</td><td>~4.4★</td><td>Rental-marketplace positioning, price-forward</td></tr><tr class=""><td>Santa Monica Windjammers</td><td>Wedding venue (club)</td><td>varies</td><td>~4.6★</td><td>Yacht-club setting, member-driven, weddings</td></tr></tbody></table>
+  <p class="lead"><b>Takeaway:</b> Don't fight rentals on price. Win on the two things they can't fake — a 40-year wedding track record and 250-guest capacity. Position as <i>the</i> luxury event yacht, not a boat rental.</p>
+</section>
+
+<section id="advertising">
+  <div class="eyebrow">03 · Where to Advertise</div>
+  <h2 class="disp">Buy intent where the affluent are already searching.</h2>
+  <p class="lead">Ranked by ROI for a wedding-and-corporate luxury charter. The pattern: own <b>high-intent search + bridal marketplaces</b> first, layer <b>social awareness</b> for retargeting.</p>
+  <table><thead><tr><th>Channel</th><th>Best for</th><th>Priority</th><th>Why / play</th></tr></thead><tbody><tr><td><b>The Knot / WeddingWire / Zola</b></td><td>Weddings</td><td class="stars">★★★★★</td><td>Highest-intent bridal traffic. You already have 41 WeddingWire reviews — pay to rank #1 in Marina del Rey boat-weddings.</td></tr><tr><td><b>Google Ads (Search)</b></td><td>Local high-intent</td><td class="stars">★★★★★</td><td>Own "yacht charter marina del rey", "boat wedding LA", "corporate yacht party". City Cruises bids here — you must too.</td></tr><tr><td><b>Google Business Profile</b></td><td>Local / maps</td><td class="stars">★★★★★</td><td>Free. Post weekly, seed photos, answer every review. Drives the map-pack for "yacht charter near me".</td></tr><tr><td><b>Instagram / Meta Ads</b></td><td>Awareness · retargeting</td><td class="stars">★★★★☆</td><td>Sunset reels convert for luxury events. Retarget site + Knot visitors. Lookalikes off past-client list.</td></tr><tr><td><b>Yelp Ads + review response</b></td><td>Local trust</td><td class="stars">★★★★☆</td><td>233 reviews = strong. Respond to every review; Yelp Ads defend the category page from competitors.</td></tr><tr><td><b>Peerspace / Cvent / LinkedIn</b></td><td>Corporate events</td><td class="stars">★★★★☆</td><td>Where planners source offsite venues + holiday parties. List the fleet as an event space.</td></tr><tr><td><b>GetMyBoat / Sailo (OTA)</b></td><td>Charter marketplace</td><td class="stars">★★★☆☆</td><td>Incremental fill for open dates; watch commissions — use for gaps, not core weddings.</td></tr><tr><td><b>TikTok</b></td><td>Gen-Z / viral reach</td><td class="stars">★★★☆☆</td><td>Low cost, high upside for sunset/proposal content. Test, don't bet the budget.</td></tr></tbody></table>
+</section>
+
+<section id="timing">
+  <div class="eyebrow">04 · Timing & Cadence</div>
+  <h2 class="disp">Sell each season one season early.</h2>
+  <p class="lead">SoCal charter demand is sharply seasonal. The money is made by <b>booking peak dates months ahead</b> — sell holiday galas in August, NYE in November, wedding Saturdays by spring.</p>
+  <table><thead><tr><th>Month</th><th>Demand driver</th><th>The move</th></tr></thead><tbody><tr><td class="mo">Jan</td><td>Valentine's pre-sale · corporate Q1 kickoffs</td><td class="act">Launch Feb proposal/date-night charters; email past clients</td></tr><tr><td class="mo">Feb</td><td>Valentine's sunset dinners (peak romance)</td><td class="act">Google + IG ads on "romantic things to do LA"; sell-out weekend</td></tr><tr><td class="mo">Mar</td><td>Whale-watch season · spring weddings open</td><td class="act">Push whale-watch + wedding-season inquiries; Knot featured</td></tr><tr><td class="mo">Apr</td><td>Grad/prom + Mother's Day build</td><td class="act">Book proms & grad nights; Mother's Day brunch cruises</td></tr><tr><td class="mo">May</td><td>WEDDING SEASON begins · Mother's Day</td><td class="act">Max ad spend on weddings; secure summer Saturdays</td></tr><tr><td class="mo">Jun</td><td>PEAK: weddings + grad + summer tourism</td><td class="act">Highest demand — raise rates, prioritize high-value galas</td></tr><tr><td class="mo">Jul</td><td>PEAK: July 4th + summer corporate</td><td class="act">4th-of-July fireworks cruises (premium); corporate summer parties</td></tr><tr><td class="mo">Aug</td><td>PEAK summer · early holiday-party outreach</td><td class="act">Start selling Nov/Dec corporate holiday galas NOW</td></tr><tr><td class="mo">Sep</td><td>Weddings + corporate Q4 planning</td><td class="act">Fall wedding push; lock holiday-party corporate contracts</td></tr><tr><td class="mo">Oct</td><td>Weddings + Halloween + holiday sell-in</td><td class="act">Halloween party cruises; finalize December calendar</td></tr><tr><td class="mo">Nov</td><td>CORPORATE HOLIDAY GALAS · Thanksgiving</td><td class="act">Holiday-party revenue peak; NYE pre-sale opens</td></tr><tr><td class="mo">Dec</td><td>NYE (highest ticket) + holiday parties</td><td class="act">Sell NYE at premium; whale-watch season; capture reviews</td></tr></tbody></table>
+  <p class="lead"><b>Posting rhythm:</b> Instagram/TikTok 4–5×/week, sunsets posted <b>Thu–Sat 5–8pm</b> (planning window). Email past clients monthly. Always be selling the season 60–90 days out.</p>
+</section>
+
+<section id="audit">
+  <div class="eyebrow">05 · Website Audit</div>
+  <h2 class="disp">A trusted brand on a slow, dated site.</h2>
+  <p class="lead">Live audit of fantaseayachts.com (WordPress on WP Engine, behind Cloudflare):</p>
+  <div class="cards2">
+    <div class="c"><h3>Speed</h3><p class="flag">Homepage weighs ~<b>292 KB of HTML alone</b> (before images/scripts) — heavy for mobile. Luxury buyers bounce on slow first paint.</p></div>
+    <div class="c"><h3>First impression</h3><p>No full-screen hero <b>video</b>. The #1 upgrade — motion of the yacht at sunset sells the fantasy instantly (the Gucci/Dior approach).</p></div>
+    <div class="c"><h3>Navigation</h3><p>Move to a clean <b>hamburger + full-screen menu</b> — fewer, more confident choices; reads as couture, not clutter.</p></div>
+    <div class="c"><h3>Conversion</h3><p>Put phone + "Charter now" persistently in reach; surface 4.75★ social proof and pricing-from up front to qualify leads.</p></div>
+  </div>
+  <p class="lead">Six ready-to-review redesign concepts below — each in a Rodeo Drive luxury-house palette, with the hero-video + hamburger pattern already built.</p>
+</section>
+
+<section id="suggested">
+  <div class="eyebrow">06 · Suggested New Websites</div>
+  <h2 class="disp">Six luxury directions. One is live-clickable each.</h2>
+  <p class="lead">Sophisticated, few-colored, wedding-grade — modeled on the great Rodeo Drive fashion houses. Each opens as a working full-screen concept with a cinematic hero video and hamburger navigation. Pick a direction; we build it out.</p>
+  <div class="vgrid">
+  <a class="vtile" href="/versions/gucci.html" target="_blank" style="--vb:#0f2e22;--vi:#f4efe3;--vg:#c8a15a">
+    <div class="vswatch"><span style="background:#0f2e22"></span><span style="background:#123829"></span><span style="background:#c8a15a"></span><span style="background:#f4efe3"></span></div>
+    <div class="vname">Gucci</div>
+    <div class="vmood">Deep forest green & antique gold — old-world crest luxury.</div>
+    <div class="vopen">Open live concept →</div>
+  </a>
+  <a class="vtile" href="/versions/chanel.html" target="_blank" style="--vb:#0a0a0a;--vi:#f7f5f1;--vg:#c9c4ba">
+    <div class="vswatch"><span style="background:#0a0a0a"></span><span style="background:#111"></span><span style="background:#c9c4ba"></span><span style="background:#f7f5f1"></span></div>
+    <div class="vname">Chanel</div>
+    <div class="vmood">Monochrome couture — ivory on black, absolute restraint.</div>
+    <div class="vopen">Open live concept →</div>
+  </a>
+  <a class="vtile" href="/versions/hermes.html" target="_blank" style="--vb:#141210;--vi:#f6ead9;--vg:#e8611f">
+    <div class="vswatch"><span style="background:#141210"></span><span style="background:#1c1813"></span><span style="background:#e8611f"></span><span style="background:#f6ead9"></span></div>
+    <div class="vname">Hermès</div>
+    <div class="vmood">Signature orange on chocolate & cream — artisanal warmth.</div>
+    <div class="vopen">Open live concept →</div>
+  </a>
+  <a class="vtile" href="/versions/tiffany.html" target="_blank" style="--vb:#0b1a1a;--vi:#f3f7f6;--vg:#7ad0c4">
+    <div class="vswatch"><span style="background:#0b1a1a"></span><span style="background:#0f2323"></span><span style="background:#7ad0c4"></span><span style="background:#f3f7f6"></span></div>
+    <div class="vname">Tiffany & Co.</div>
+    <div class="vmood">Robin-egg blue & white — clean, iconic, celebratory.</div>
+    <div class="vopen">Open live concept →</div>
+  </a>
+  <a class="vtile" href="/versions/lv.html" target="_blank" style="--vb:#1a1109;--vi:#f2e6d2;--vg:#caa04e">
+    <div class="vswatch"><span style="background:#1a1109"></span><span style="background:#241708"></span><span style="background:#caa04e"></span><span style="background:#f2e6d2"></span></div>
+    <div class="vname">Louis Vuitton</div>
+    <div class="vmood">Chocolate & saffron gold — the monogram travel house.</div>
+    <div class="vopen">Open live concept →</div>
+  </a>
+  <a class="vtile" href="/versions/dior.html" target="_blank" style="--vb:#101216;--vi:#eef0f3;--vg:#cbb892">
+    <div class="vswatch"><span style="background:#101216"></span><span style="background:#161a20"></span><span style="background:#cbb892"></span><span style="background:#eef0f3"></span></div>
+    <div class="vname">Dior</div>
+    <div class="vmood">Dove grey, midnight navy & champagne — couture atelier.</div>
+    <div class="vopen">Open live concept →</div>
+  </a></div>
+</section>
+
+<section id="partners">
+  <div class="eyebrow">07 · Unlikely Partners</div>
+  <h2 class="disp">Ten referral engines hiding in plain sight.</h2>
+  <p class="lead">Your buyer is already spending at these brands. Co-marketing swaps a $0-CAC stream of high-net-worth referrals for a few hosted events a year.</p>
+  <div class="pcard"><div class="pnum">01</div><div><h4>Rodeo Drive luxury boutiques (Gucci, Chanel, Dior)</h4><p>Co-host aboard trunk shows & styling soirées; cross-refer VIP clienteling lists. Their client is your client.</p></div></div><div class="pcard"><div class="pnum">02</div><div><h4>Beverly Hills exotic-car dealers (Rolls-Royce, Ferrari, Bentley)</h4><p>“Arrive by yacht, leave by Rolls” proposal & anniversary packages; shared affluent CRM and event swaps.</p></div></div><div class="pcard"><div class="pnum">03</div><div><h4>High-end jewelers (engagement rings)</h4><p>Bundle a private sunset proposal charter with the ring purchase — the jeweler closes the ring, you own the moment.</p></div></div><div class="pcard"><div class="pnum">04</div><div><h4>Private jet & helicopter charters (Blade, JSX, Clay Lacy)</h4><p>“Jet-to-yacht” luxury itineraries; reciprocal referral fees between two high-net-worth travel brands.</p></div></div><div class="pcard"><div class="pnum">05</div><div><h4>Beverly Hills / MDR luxury hotels & concierges (Waldorf, Ritz-Carlton)</h4><p>Concierge referral commission for guest charters; be the on-water excursion every five-star front desk recommends.</p></div></div><div class="pcard"><div class="pnum">06</div><div><h4>Luxury wedding planners & couture florists</h4><p>Preferred-vendor pacts — weddings are your core revenue; own the planner rolodex before competitors do.</p></div></div><div class="pcard"><div class="pnum">07</div><div><h4>Beverly Hills med-spas, cosmetic surgeons & celeb dentists</h4><p>Client-appreciation & influencer cruises; their glossy patient base is prime for milestone charters.</p></div></div><div class="pcard"><div class="pnum">08</div><div><h4>VC firms, law firms & commercial real-estate brokers</h4><p>Deal-closing dinners, investor galas and summer offsites — recurring corporate contracts, not one-offs.</p></div></div><div class="pcard"><div class="pnum">09</div><div><h4>Film/TV production & location scouts</h4><p>Yacht as a filming location + wrap parties; Marina del Rey is film-permit friendly = a steady B2B line.</p></div></div><div class="pcard"><div class="pnum">10</div><div><h4>Champagne houses, wineries & celebrity chefs</h4><p>Co-branded pairing dinner cruises — a marquee recurring event series that sells itself on the name.</p></div></div>
+</section>
+
+<section id="videos">
+  <div class="eyebrow">08 · Example Videos</div>
+  <h2 class="disp">Four 20-second brand films — one per recommendation.</h2>
+  <p class="lead">HeyGen presenter clips (15–30s each): fade-in, music bed, and a closing <b>action item</b>. Drop-in for Instagram Reels, the site, and the pitch.</p>
+  <div class="vids">
+    <div class="vid"><div class="t">01 · Reputation</div><div class="s">“You’re rated 4.75★ across 300+ reviews.”</div><div class="a">▶ Action: reply to every review in 48h + auto-ask each guest.</div><div class="pending" data-vid="reputation">● rendering…</div></div>
+    <div class="vid"><div class="t">02 · Advertising</div><div class="s">“Your buyers are searching right now.”</div><div class="a">▶ Action: launch Google Ads + The Knot featured listing this week.</div><div class="pending" data-vid="advertising">● rendering…</div></div>
+    <div class="vid"><div class="t">03 · Competitors</div><div class="s">“Don’t fight rentals on price.”</div><div class="a">▶ Action: reposition as THE luxury event yacht — legacy + 250 guests.</div><div class="pending" data-vid="competitors">● rendering…</div></div>
+    <div class="vid"><div class="t">04 · Timing</div><div class="s">“Sell each season one season early.”</div><div class="a">▶ Action: open holiday-gala + NYE pre-sale now; book peak Saturdays.</div><div class="pending" data-vid="timing">● rendering…</div></div>
+  </div>
+</section>
+
+<section id="roadmap">
+  <div class="eyebrow">09 · 90-Day Roadmap</div>
+  <h2 class="disp">What to do, in order.</h2>
+  <ul class="road">
+    <li><div class="w">Weeks 1–2</div><div class="d">Turn on review automation (Yelp/Google/Knot) + reply to all past reviews. Claim/optimize Google Business Profile. Pick a website direction.</div></li>
+    <li><div class="w">Weeks 3–6</div><div class="d">Launch Google Ads + The Knot/WeddingWire featured listing. Ship the new hero-video homepage. Begin 4–5×/week Instagram cadence.</div></li>
+    <li><div class="w">Weeks 6–10</div><div class="d">Open holiday-gala + NYE pre-sale. Sign 3 “unlikely partner” referral swaps (jeweler, luxury hotel, wedding planner).</div></li>
+    <li><div class="w">Weeks 10–13</div><div class="d">Retargeting on Meta off site + Knot traffic. Publish the 4 brand films as Reels. Measure cost-per-booked-charter; double down on the winner.</div></li>
+  </ul>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Growth Strategy Brief</span>
+  <span>Prepared for the 2026 consulting review</span>
+  <span>Confidential — for discussion</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/chanel.html b/public/versions/chanel.html
new file mode 100644
index 0000000..470d9d6
--- /dev/null
+++ b/public/versions/chanel.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Chanel Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#0a0a0a;--panel:#111;--ink:#f7f5f1;--gold:#c9c4ba;--line:rgba(255,255,255,.16)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Playfair Display', 'Didot', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Playfair Display', 'Didot', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Playfair Display', 'Didot', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Montserrat', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Montserrat', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Playfair Display', 'Didot', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Playfair Display', 'Didot', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Playfair Display', 'Didot', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Playfair Display', 'Didot', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Playfair Display', 'Didot', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Playfair Display', 'Didot', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Playfair Display', 'Didot', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Montserrat', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Chanel palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Chanel</div>
+  <div class="houses"><a href="/versions/gucci.html">Gucci</a><a href="/versions/hermes.html">Hermès</a><a href="/versions/tiffany.html">Tiffany & Co.</a><a href="/versions/lv.html">Louis Vuitton</a><a href="/versions/dior.html">Dior</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">Black. White. Nothing superfluous.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Chanel palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/dior.html b/public/versions/dior.html
new file mode 100644
index 0000000..7489625
--- /dev/null
+++ b/public/versions/dior.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Dior Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#101216;--panel:#161a20;--ink:#eef0f3;--gold:#cbb892;--line:rgba(203,184,146,.28)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Playfair Display', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Playfair Display', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Playfair Display', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Montserrat', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Montserrat', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Playfair Display', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Playfair Display', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Playfair Display', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Playfair Display', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Playfair Display', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Playfair Display', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Playfair Display', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Montserrat', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Dior palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Dior</div>
+  <div class="houses"><a href="/versions/gucci.html">Gucci</a><a href="/versions/chanel.html">Chanel</a><a href="/versions/hermes.html">Hermès</a><a href="/versions/tiffany.html">Tiffany & Co.</a><a href="/versions/lv.html">Louis Vuitton</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">Grey skies, gold horizons, midnight sea.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Dior palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/gucci.html b/public/versions/gucci.html
new file mode 100644
index 0000000..bdee919
--- /dev/null
+++ b/public/versions/gucci.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Gucci Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#0f2e22;--panel:#123829;--ink:#f4efe3;--gold:#c8a15a;--line:rgba(200,161,90,.28)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Cormorant Garamond', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Jost', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Jost', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Cormorant Garamond', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Cormorant Garamond', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Cormorant Garamond', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Jost', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Gucci palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Gucci</div>
+  <div class="houses"><a href="/versions/chanel.html">Chanel</a><a href="/versions/hermes.html">Hermès</a><a href="/versions/tiffany.html">Tiffany & Co.</a><a href="/versions/lv.html">Louis Vuitton</a><a href="/versions/dior.html">Dior</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">Heritage. Emerald. The sea as couture.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Gucci palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/hermes.html b/public/versions/hermes.html
new file mode 100644
index 0000000..994188b
--- /dev/null
+++ b/public/versions/hermes.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Hermès Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#141210;--panel:#1c1813;--ink:#f6ead9;--gold:#e8611f;--line:rgba(232,97,31,.30)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Cormorant Garamond', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Jost', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Jost', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Cormorant Garamond', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Cormorant Garamond', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Cormorant Garamond', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Jost', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Hermès palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Hermès</div>
+  <div class="houses"><a href="/versions/gucci.html">Gucci</a><a href="/versions/chanel.html">Chanel</a><a href="/versions/tiffany.html">Tiffany & Co.</a><a href="/versions/lv.html">Louis Vuitton</a><a href="/versions/dior.html">Dior</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">Craft, carried across the water.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Hermès palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/lv.html b/public/versions/lv.html
new file mode 100644
index 0000000..d1361e7
--- /dev/null
+++ b/public/versions/lv.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Louis Vuitton Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#1a1109;--panel:#241708;--ink:#f2e6d2;--gold:#caa04e;--line:rgba(202,160,78,.30)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Cormorant Garamond', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Jost', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Jost', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Cormorant Garamond', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Jost', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Cormorant Garamond', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Cormorant Garamond', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Jost', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Louis Vuitton palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Louis Vuitton</div>
+  <div class="houses"><a href="/versions/gucci.html">Gucci</a><a href="/versions/chanel.html">Chanel</a><a href="/versions/hermes.html">Hermès</a><a href="/versions/tiffany.html">Tiffany & Co.</a><a href="/versions/dior.html">Dior</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">The art of the voyage.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Louis Vuitton palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/versions/tiffany.html b/public/versions/tiffany.html
new file mode 100644
index 0000000..ed8f34f
--- /dev/null
+++ b/public/versions/tiffany.html
@@ -0,0 +1,141 @@
+<!doctype html><html lang="en"><head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>FantaSea Yachts — Tiffany & Co. Concept</title>
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
+<style>
+:root{--bg:#0b1a1a;--panel:#0f2323;--ink:#f3f7f6;--gold:#7ad0c4;--line:rgba(122,208,196,.30)}
+*{margin:0;padding:0;box-sizing:border-box}
+body{background:var(--bg);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased}
+.disp{font-family:'Cormorant Garamond', Georgia, serif}
+a{color:inherit;text-decoration:none}
+/* top bar */
+.bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;mix-blend-mode:difference}
+.brand{font-family:'Cormorant Garamond', Georgia, serif;font-size:22px;letter-spacing:.34em;text-transform:uppercase}
+.burger{width:34px;height:22px;position:relative;cursor:pointer;background:none;border:0}
+.burger span{position:absolute;left:0;right:0;height:1.4px;background:var(--ink);transition:.35s}
+.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:10px}.burger span:nth-child(3){top:18px}
+body.nav .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
+body.nav .burger span:nth-child(2){opacity:0}
+body.nav .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
+/* full-screen elegant menu */
+.menu{position:fixed;inset:0;z-index:39;background:var(--bg);opacity:0;pointer-events:none;transition:.5s;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
+body.nav .menu{opacity:1;pointer-events:auto}
+.menu a{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(30px,6vw,64px);letter-spacing:.04em;padding:6px 0;position:relative;opacity:.82;transition:.3s}
+.menu a:hover{opacity:1;color:var(--gold)}
+.menu .sub{margin-top:34px;font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
+.menu .houses{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-family:'Montserrat', system-ui, sans-serif!important;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
+.menu .houses a{font-size:12px!important;font-family:'Montserrat', system-ui, sans-serif!important;opacity:.55}
+/* hero */
+.hero{height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
+.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
+.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,var(--bg));z-index:1}
+.hero .in{position:relative;z-index:2;padding:0 24px}
+.kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
+.hero h1{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(46px,9vw,120px);line-height:.98;letter-spacing:.01em}
+.hero .tag{font-family:'Cormorant Garamond', Georgia, serif;font-style:italic;font-size:clamp(18px,2.4vw,26px);opacity:.9;margin-top:20px}
+.cta{display:inline-block;margin-top:40px;padding:15px 40px;border:1px solid var(--gold);color:var(--ink);font-family:'Montserrat', system-ui, sans-serif;font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.35s}
+.cta:hover{background:var(--gold);color:var(--bg)}
+/* sections */
+section{padding:clamp(70px,11vw,150px) clamp(24px,7vw,120px);border-top:1px solid var(--line)}
+.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
+h2{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:.01em;max-width:15ch}
+.lead{max-width:60ch;opacity:.8;margin-top:26px;font-size:17px}
+.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);margin-top:60px}
+.card{background:var(--bg);padding:44px 34px}
+.card .n{font-family:'Cormorant Garamond', Georgia, serif;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
+.card h3{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:26px;margin:16px 0 12px}
+.card p{opacity:.72;font-size:15px}
+.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:60px}
+.split>div{background:var(--bg);padding:56px 44px}
+.stat{font-family:'Cormorant Garamond', Georgia, serif;font-size:clamp(40px,6vw,72px);color:var(--gold);line-height:1}
+.stat+small{display:block;margin-top:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;opacity:.6}
+.contact{display:flex;flex-wrap:wrap;gap:60px;margin-top:48px;font-size:15px}
+.contact b{display:block;font-family:'Cormorant Garamond', Georgia, serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:400}
+footer{padding:70px clamp(24px,7vw,120px);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
+.badge{position:fixed;left:20px;bottom:18px;z-index:50;font-family:'Montserrat', system-ui, sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;background:var(--gold);color:var(--bg);padding:7px 14px;border-radius:2px}
+@media(max-width:720px){.split,.split>div{grid-template-columns:1fr}.bar{padding:18px 22px}}
+</style></head>
+<body>
+<a class="badge" href="/#suggested">◀ Concept · Tiffany & Co. palette</a>
+<header class="bar">
+  <a class="brand" href="#">FantaSea</a>
+  <button class="burger" onclick="document.body.classList.toggle('nav')" aria-label="Menu"><span></span><span></span><span></span></button>
+</header>
+<nav class="menu" onclick="if(event.target.tagName==='A')document.body.classList.remove('nav')">
+  <a href="#fleet">The Fleet</a>
+  <a href="#weddings">Weddings</a>
+  <a href="#corporate">Corporate</a>
+  <a href="#dining">Sunset Dining</a>
+  <a href="#story">Our Story</a>
+  <a href="#contact">Charter Now</a>
+  <div class="sub">Palette study — Tiffany & Co.</div>
+  <div class="houses"><a href="/versions/gucci.html">Gucci</a><a href="/versions/chanel.html">Chanel</a><a href="/versions/hermes.html">Hermès</a><a href="/versions/lv.html">Louis Vuitton</a><a href="/versions/dior.html">Dior</a></div>
+</nav>
+
+<div class="hero">
+  <video autoplay muted loop playsinline poster="/videos/hero-poster.jpg"><source src="/videos/hero.mp4" type="video/mp4"></video>
+  <div class="in">
+    <div class="kicker">Marina del Rey · Est. 1980</div>
+    <h1 class="disp">FantaSea</h1>
+    <div class="tag">A blue box on the bay.</div>
+    <a class="cta" href="#contact">Begin your charter</a>
+  </div>
+</div>
+
+<section id="fleet">
+  <div class="eyebrow">The Fleet</div>
+  <h2 class="disp">Three yachts. One unrepeatable evening on the water.</h2>
+  <p class="lead">A private fleet accommodating 12–250 guests, from intimate proposals to 250-guest galas — impeccably crewed, chef-driven, and yours alone for the night.</p>
+  <div class="grid3">
+    <div class="card"><div class="n">I</div><h3 class="disp">The Grand</h3><p>Up to 250 guests. Ballroom weddings and corporate galas beneath the open sky.</p></div>
+    <div class="card"><div class="n">II</div><h3 class="disp">The Intimate</h3><p>40–90 guests. Rehearsal dinners, milestone celebrations, sunset receptions.</p></div>
+    <div class="card"><div class="n">III</div><h3 class="disp">The Private</h3><p>12–24 guests. Proposals, anniversaries, quiet luxury on the bay.</p></div>
+  </div>
+</section>
+
+<section id="weddings">
+  <div class="eyebrow">Weddings</div>
+  <h2 class="disp">Say “I do” where the water meets the light.</h2>
+  <div class="split">
+    <div><p class="lead" style="margin-top:0">Ceremony, cocktails and dinner-dancing aboard — one seamless evening, one dedicated coordinator, zero logistics for you. Preferred florists, chefs and photographers on call.</p></div>
+    <div><div class="stat">10,000+</div><small>Celebrations hosted since 1980</small><div class="stat" style="margin-top:34px">4.75★</div><small>Across 300+ reviews</small></div>
+  </div>
+</section>
+
+<section id="corporate">
+  <div class="eyebrow">Corporate</div>
+  <h2 class="disp">Board dinners, product launches, holiday galas — offshore.</h2>
+  <p class="lead">Impress clients and reward teams with a venue that ends the night on the water. Full AV, plated or station dining, and a crew that makes it effortless.</p>
+</section>
+
+<section id="dining">
+  <div class="eyebrow">Sunset Dining</div>
+  <h2 class="disp">A chef’s table that sails into the sunset.</h2>
+  <p class="lead">Seasonal menus, sommelier pairings, and the California coast gliding past the window. The most quietly romantic reservation in Marina del Rey.</p>
+</section>
+
+<section id="story">
+  <div class="eyebrow">Our Story</div>
+  <h2 class="disp">Family-owned. Forty-odd years. One coastline.</h2>
+  <p class="lead">Since 1980, FantaSea has hosted more than 10,000 events on the waters of Southern California — the same family, the same care, the same horizon.</p>
+</section>
+
+<section id="contact">
+  <div class="eyebrow">Charter Now</div>
+  <h2 class="disp">Reserve the sea.</h2>
+  <div class="contact">
+    <div><b>Marina</b>4215 Admiralty Way, Marina del Rey, CA 90292</div>
+    <div><b>Reservations</b>(310) 827-2220</div>
+    <div><b>Online</b>fantaseayachts.com</div>
+    <div><b>From</b>$6,000 · 12–250 guests</div>
+  </div>
+  <a class="cta" href="tel:+13108272220" style="margin-top:44px">Call to charter</a>
+</section>
+
+<footer>
+  <span>FantaSea Yachts · Marina del Rey</span>
+  <span>Tiffany & Co. palette concept — for discussion</span>
+  <span>© 1980–2026</span>
+</footer>
+</body></html>
\ No newline at end of file
diff --git a/public/videos/hero-poster.jpg b/public/videos/hero-poster.jpg
new file mode 100644
index 0000000..99e5ec1
Binary files /dev/null and b/public/videos/hero-poster.jpg differ
diff --git a/public/videos/hero.mp4 b/public/videos/hero.mp4
new file mode 100644
index 0000000..4c74bb9
Binary files /dev/null and b/public/videos/hero.mp4 differ
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..627449e
--- /dev/null
+++ b/server.js
@@ -0,0 +1,3 @@
+const express=require('express');const app=express();const PORT=process.env.PORT||9767;
+app.use(express.static(__dirname+'/public',{extensions:['html']}));
+app.listen(PORT,()=>console.log('fantasea-consulting on '+PORT));

(oldest)  ·  back to Fantasea Consulting  ·  videos: embed real FantaSea YouTube films + new-video ideas 8347c61 →