Tell your story
Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience, revealing hidden wonders.


About Us
Fleurs is a flower delivery and subscription business. Based in the EU, our mission is not only to deliver stunning flower arrangements across but also foster knowledge and enthusiasm on the beautiful gift of nature: flowers.
Our services

Collect
Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience

Assemble
Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience

Deliver
Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience
What people are saying
Jo Mulligan“Superb product and customer service!”
Atlanta, GA

Pricing
Cancel or pause anytime.
Free
0€
- Get access to our paid articles and weekly newsletter.
- Join our IRL events.
- Get a free tote bag.
- An elegant addition of home decor collection.
- Join our forums.
Single
20€/month
- Get access to our paid articles and weekly newsletter.
- Join our IRL events.
- Get a free tote bag.
- An elegant addition of home decor collection.
- Join our forums.
<!DOCTYPE html>
<html lang="en" class="scroll-smooth">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="description" content="Whale Marketing - Finance-Engineered Growth. We build revenue systems using financial architecture and acquisition science.">
<meta name="keywords" content="Growth Marketing, Unit Economics, CAC Reduction, LTV Engineering, ROAS, Marketing Agency India">
<meta property="og:title" content="Whale Marketing | Finance-Engineered Growth">
<meta property="og:description" content="Build a Revenue System Not Just Ads. Average 4.8x ROAS.">
<meta property="og:type" content="website">
<title>Whale Marketing | Finance-Engineered Growth</title>
<!-- Load Tailwind CSS -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Load GSAP & Plugins -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>
<!-- Load Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Typography -->
<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=Outfit:wght@200..800&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand-primary': '#1F66CC', // Whale Blue (Trust, Scale)
'brand-secondary': '#1A1A1A', // Dark Graphite (Premium Contrast)
'brand-surface': '#262626', // Lighter Graphite for sections
'brand-card': '#1F1F1F',
'text-heading': '#FFFFFF', // Pure White
'text-body': '#F2F4F7', // Cool Grey
'text-dim': '#9CA3AF', // Standard Dim Grey
'accent-highlight': '#00D2D4', // Aqua-Teal (Data/Tech)
'accent-cta': '#C7E600', // Lime Growth Green (ROI/Action)
'accent-alert': '#FF5252', // Coral Flame (Alerts)
},
backgroundImage: {
'gradient-intelligence': 'linear-gradient(135deg, #1A1A1A 0%, #111111 40%, #1F66CC 100%)',
},
fontFamily: {
sans: ['Outfit', 'sans-serif'],
serif: ['Playfair Display', 'serif'],
mono: ['JetBrains Mono', 'monospace'],
},
letterSpacing: {
'elite': '0.15em',
},
boxShadow: {
'card': '0 4px 20px rgba(0, 0, 0, 0.4)',
'card-hover': '0 10px 40px rgba(31, 102, 204, 0.2)', // Whale Blue Glow
'cta-hover': '0 0 20px rgba(199, 230, 0, 0.4)', // Lime Glow
},
screens: {
'xs': '375px',
'sm': '640px',
'md': '768px',
'lg': '1024px',
'xl': '1280px',
}
}
}
}
</script>
<style>
body {
background-color: #1A1A1A;
color: #F2F4F7;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
/* GRAIN OVERLAY */
.noise-overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
pointer-events: none; z-index: 9998; opacity: 0.03;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}
.text-label {
font-size: 0.75rem; text-transform: uppercase;
letter-spacing: 0.15em; font-weight: 700; color: #00D2D4; /* Aqua for labels */
}
.section-padding { padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .section-padding { padding-top: 8rem; padding-bottom: 8rem; } }
/* Marquee Animation */
.marquee-container { overflow: hidden; white-space: nowrap; width: 100vw; }
.marquee-content { display: inline-block; animation: marquee 20s linear infinite; }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
/* Logo Scroll for Trust Bar (Left to Right) */
.logo-scroll-container { width: 100%; overflow: hidden; position: relative; max-width: 100vw; }
.logo-scroll-track { display: flex; width: max-content; animation: logo-scroll 30s linear infinite; }
.logo-scroll-track:hover { animation-play-state: paused; }
@keyframes logo-scroll { 0% { transform: translateX(-50%); } 100% { transform: translateX(0); } }
.fade-mask {
mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
-webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}
/* Modal & Mobile Menu */
.case-study-modal {
clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.3s ease;
opacity: 0;
background: rgba(26, 26, 26, 0.98);
}
.case-study-modal.open { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); opacity: 1; }
#mobile-menu { transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1); }
#mobile-menu.open { transform: translateX(0); }
/* Tables & Details */
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details[open] summary ~ * { animation: sweep .3s ease-in-out; }
@keyframes sweep { 0% {opacity: 0; transform: translateY(-10px)} 100% {opacity: 1; transform: translateY(0)} }
.metric-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #262626; border-radius: 8px; overflow: hidden; min-width: 300px; }
.metric-table th, .metric-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #262626; }
.metric-table th { background-color: #1F1F1F; color: #00D2D4; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; }
.metric-table td { background-color: #1A1A1A; color: #F2F4F7; }
.metric-table tr:last-child td { border-bottom: none; }
.metric-bad { color: #FF5252; }
.metric-good { color: #C7E600; font-weight: bold; }
/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #1A1A1A; }
::-webkit-scrollbar-thumb { background: #262626; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #1F66CC; }
/* Calendar */
.calendar-day { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer; transition: all 0.3s ease; font-size: 0.8rem; color: #F2F4F7; }
@media(min-width: 768px) { .calendar-day { width: 36px; height: 36px; font-size: 0.85rem; } }
.calendar-day:hover:not(.disabled) { background-color: #1F66CC; color: #FFFFFF; }
.calendar-day.selected { background-color: #C7E600; color: #1A1A1A; font-weight: bold; box-shadow: 0 4px 12px rgba(199, 230, 0, 0.4); }
.calendar-day.disabled { color: #4B5563; cursor: not-allowed; }
.time-slot { border: 1px solid #1F66CC; border-radius: 6px; padding: 8px; text-align: center; cursor: pointer; transition: all 0.2s; color: #F2F4F7; font-size: 0.75rem; }
@media(min-width: 768px) { .time-slot { font-size: 0.85rem; } }
.time-slot:hover { border-color: #C7E600; color: #C7E600; }
.time-slot.selected { background-color: #C7E600; color: #1A1A1A; border-color: #C7E600; font-weight: bold; }
/* View Switcher */
.view-section { display: none; opacity: 0; transition: opacity 0.3s ease-in-out; }
.view-section.active { display: block; opacity: 1; }
/* Calculator Styling */
.calc-card { background: #1F1F1F; border: 1px solid #1F66CC; box-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.5); }
.chart-container { position: relative; height: 250px; width: 100%; background: rgba(0,0,0,0.2); border-radius: 8px; border: 1px solid #262626; padding: 10px; }
@media(min-width: 768px) { .chart-container { height: 300px; padding: 16px; } }
</style>
</head>
<body class="antialiased selection:bg-brand-primary selection:text-white">
<div class="noise-overlay"></div>
<!-- MAIN SITE VIEW -->
<div id="main-site-view" class="view-section active">
<!-- NAVIGATION -->
<nav class="fixed w-full z-50 top-0 transition-all duration-300" id="navbar">
<div class="absolute inset-0 bg-brand-secondary/95 backdrop-blur-md border-b border-white/5"></div>
<div class="relative max-w-7xl mx-auto px-6 h-16 md:h-24 flex items-center justify-between">
<a href="#" class="flex items-center gap-3 group hover-trigger z-50">
<div class="w-8 h-8 md:w-10 md:h-10 bg-brand-primary rounded-full flex items-center justify-center transform group-hover:scale-110 transition-transform duration-500 shadow-lg shadow-brand-primary/20">
<svg class="w-4 h-4 md:w-5 md:h-5 text-white fill-current" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 16h-2v-4h2v4zm0-6h-2V6h2v6z"/></svg>
</div>
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg md:text-xl leading-none text-text-heading">WHALE</span>
</div>
</a>
<!-- Desktop Menu -->
<div class="hidden md:flex items-center gap-8 text-sm font-medium text-text-body">
<a href="#philosophy" class="hover:text-white transition-colors">Philosophy</a>
<a href="#services" class="hover:text-white transition-colors">Services</a>
<a href="#work" class="hover:text-white transition-colors">Work</a>
<a href="#process" class="hover:text-white transition-colors">System</a>
</div>
<div class="flex items-center gap-4 z-50">
<!-- CTA Button -->
<button onclick="openBooking()" class="hidden md:block px-6 py-2 bg-accent-cta text-brand-secondary font-bold text-xs tracking-widest uppercase hover:bg-white transition-all shadow-lg hover:shadow-cta-hover rounded-sm">
Audit & Breach
</button>
<!-- Mobile Menu Trigger -->
<button onclick="toggleMobileMenu()" class="md:hidden text-white p-2 focus:outline-none">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path></svg>
</button>
</div>
</div>
</nav>
<!-- MOBILE MENU OVERLAY -->
<div id="mobile-menu" class="fixed inset-0 z-[60] bg-brand-secondary flex flex-col justify-center items-center gap-8 text-2xl font-serif text-white h-[100dvh]">
<a href="#philosophy" onclick="toggleMobileMenu()" class="hover:text-accent-highlight transform hover:scale-105 transition-transform">Philosophy</a>
<a href="#services" onclick="toggleMobileMenu()" class="hover:text-accent-highlight transform hover:scale-105 transition-transform">Services</a>
<a href="#work" onclick="toggleMobileMenu()" class="hover:text-accent-highlight transform hover:scale-105 transition-transform">Work</a>
<a href="#process" onclick="toggleMobileMenu()" class="hover:text-accent-highlight transform hover:scale-105 transition-transform">System</a>
<button onclick="toggleMobileMenu(); openBooking()" class="mt-8 px-8 py-4 bg-accent-cta text-brand-secondary font-bold text-sm tracking-widest uppercase rounded-sm shadow-xl">
Audit & Breach
</button>
<button onclick="toggleMobileMenu()" class="absolute top-6 right-6 text-white/50 hover:text-white p-2">
<svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
</button>
</div>
<!-- MAIN CONTENT -->
<main id="main-content">
<!-- HERO -->
<section id="hero" class="relative min-h-screen flex items-center pt-20 pb-12 overflow-hidden">
<div class="absolute inset-0 bg-gradient-intelligence z-0"></div>
<div class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 flex flex-col items-center justify-center text-center">
<div class="max-w-4xl flex flex-col items-center">
<div class="flex items-center gap-2 sm:gap-4 mb-6 reveal-text justify-center flex-wrap">
<div class="h-[1px] w-4 sm:w-8 bg-accent-highlight"></div>
<span class="text-[10px] sm:text-xs font-bold tracking-elite uppercase text-accent-highlight">Finance-Led Growth</span>
<span class="px-2 py-1 bg-accent-cta/10 text-accent-cta text-[10px] font-bold rounded uppercase tracking-wider border border-accent-cta/20 backdrop-blur-sm whitespace-nowrap">4.8x Median ROAS</span>
<div class="h-[1px] w-4 sm:w-8 bg-accent-highlight"></div>
</div>
<h1 class="text-4xl sm:text-6xl lg:text-8xl font-serif font-medium leading-[1.1] sm:leading-[0.95] text-text-heading mb-6 sm:mb-8 reveal-text">
Build a Revenue <br>
<span class="text-brand-primary italic relative inline-block pb-2">System Not Just Ads.</span>
</h1>
<p class="text-base sm:text-lg md:text-xl text-text-body max-w-2xl leading-relaxed mb-8 sm:mb-10 font-light reveal-text mx-auto px-2">
We engineer **Systemic Solvency**. Our predictive LTV architecture and radical CAC deflation protocols eliminate margin erosion.
</p>
<div class="flex flex-col sm:flex-row gap-4 reveal-text justify-center w-full sm:w-auto px-4 sm:px-0">
<button onclick="openBooking()" class="px-8 py-4 bg-accent-cta text-brand-secondary font-semibold tracking-wide hover:bg-white transition-all shadow-xl hover:shadow-cta-hover rounded-sm w-full sm:w-auto text-center">
Deploy Systemic Solvency
</button>
<button onclick="switchView('calculator')" class="px-8 py-4 border border-brand-primary text-text-body font-semibold tracking-wide hover:border-white hover:text-white transition-colors rounded-sm w-full sm:w-auto text-center flex items-center justify-center">
Run Unit Economics Test
</button>
</div>
</div>
<!-- TRUST STRIP -->
<div class="mt-12 sm:mt-16 pt-8 border-t border-white/5 w-full max-w-3xl fade-mask mx-auto px-4">
<p class="text-xs text-text-dim uppercase tracking-widest mb-6 text-center">Trusted by 50+ Apex Brands</p>
<div class="logo-scroll-container">
<div class="logo-scroll-track flex items-center gap-8 sm:gap-16 opacity-90 hover:grayscale-0 transition-all duration-500">
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white font-sans tracking-tight">VORTEX</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-serif text-lg text-white tracking-widest">LUMINA</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white">NEXUS</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-mono text-lg text-white">ORBIT</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white uppercase tracking-wider">APEX</span></div>
<!-- Duplicates for scroll -->
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white font-sans tracking-tight">VORTEX</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-serif text-lg text-white tracking-widest">LUMINA</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white">NEXUS</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-mono text-lg text-white">ORBIT</span></div>
<div class="flex items-center gap-3 flex-shrink-0"><span class="font-bold text-lg text-white uppercase tracking-wider">APEX</span></div>
</div>
</div>
</div>
</div>
</section>
<!-- MARQUEE -->
<div class="bg-brand-primary py-3 sm:py-4 border-y border-brand-secondary z-20 relative shadow-xl">
<div class="marquee-container">
<div class="marquee-content font-serif italic text-lg sm:text-xl text-white opacity-95">
ARBITRAGE IDENTIFICATION SYSTEMIC PROFIT LOCK-IN UNIT ECONOMICS MASTERY SCALABLE RETURN ON AD SPEND (SROAS) ARBITRAGE IDENTIFICATION SYSTEMIC PROFIT LOCK-IN UNIT ECONOMICS MASTERY SCALABLE RETURN ON AD SPEND (SROAS)
</div>
</div>
</div>
<!-- PHILOSOPHY -->
<section id="philosophy" class="section-padding bg-brand-secondary border-t border-white/5">
<div class="max-w-7xl mx-auto px-4 sm:px-6">
<div class="grid md:grid-cols-12 gap-8 md:gap-16 items-start">
<div class="md:col-span-4 md:sticky md:top-32 section-title-reveal">
<span class="text-label mb-4 block">01/ The Mandate</span>
<h2 class="text-3xl sm:text-4xl md:text-5xl font-serif text-text-heading leading-tight">Operating on <br>Financial Mandate.</h2>
</div>
<div class="md:col-span-8">
<p class="text-lg sm:text-xl md:text-2xl text-text-body font-light leading-relaxed mb-8 text-reveal-p">
Modern marketing is often a balance sheet liability—inflated Customer Acquisition Cost (CAC), weak retention loops, and strategies that chase "social buzz" instead of compounding shareholder equity.
</p>
<p class="text-lg sm:text-xl md:text-2xl text-white font-medium leading-relaxed mb-12 text-reveal-p border-l-4 border-accent-cta pl-4 sm:pl-6">
The Whale operates with CFO-level discipline: If the unit economics do not yield a predictable, scalable ROI, the budget is terminated.
</p>
<div class="grid grid-cols-2 sm:grid-cols-3 gap-6 sm:gap-8 pt-12 border-t border-white/10" id="stats-container">
<div class="stats-card">
<div class="text-3xl sm:text-4xl md:text-5xl font-light text-white mb-2"><span class="stat-counter" data-target="50">0</span>M+</div>
<div class="text-[10px] sm:text-xs text-brand-primary uppercase tracking-elite font-bold">Ad Spend Managed</div>
</div>
<div class="stats-card">
<div class="text-3xl sm:text-4xl md:text-5xl font-light text-white mb-2"><span class="stat-counter" data-target="4.8">0</span>x</div>
<div class="text-[10px] sm:text-xs text-brand-primary uppercase tracking-elite font-bold">Avg ROAS</div>
</div>
<div class="stats-card">
<div class="text-3xl sm:text-4xl md:text-5xl font-light text-white mb-2"><span class="stat-counter" data-target="12">0</span></div>
<div class="text-[10px] sm:text-xs text-brand-primary uppercase tracking-elite font-bold">Unicorns Scaled</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- SYSTEM (METHODOLOGY) -->
<section id="process" class="section-padding bg-brand-surface relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6">
<div class="flex flex-col md:flex-row justify-between items-start md:items-end mb-12 sm:mb-16 border-b border-white/10 pb-8 section-title-reveal">
<div>
<span class="text-label mb-2 block">02/ The Protocol</span>
<h2 class="text-3xl sm:text-4xl md:text-5xl font-serif text-text-heading">The Whale Solvency Protocol™</h2>
</div>
<button onclick="switchView('methodology')" class="text-brand-primary hover:text-white transition-colors mt-4 md:mt-0 text-sm tracking-widest uppercase border-b border-brand-primary pb-1 cursor-pointer">View Full Methodology</button>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-px bg-brand-secondary border border-brand-secondary">
<div onclick="switchView('view-audit')" class="bg-brand-card p-6 sm:p-10 hover:bg-brand-surface transition-all duration-500 group relative overflow-hidden transform hover:-translate-y-2 cursor-pointer rounded-sm md:rounded-none">
<div class="absolute top-0 right-0 p-4 opacity-20 text-5xl sm:text-6xl font-serif text-white group-hover:text-brand-primary transition-colors">01</div>
<div class="mb-6 text-brand-primary group-hover:text-accent-highlight transition-colors">
<svg class="w-10 h-10 sm:w-12 sm:h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path></svg>
</div>
<h3 class="text-lg sm:text-xl font-bold text-text-heading mb-4 group-hover:text-accent-highlight transition-colors">Financial Architecture<br>Audit</h3>
<p class="text-text-body leading-relaxed text-sm mb-6">We map industry economics, competitor CAC, demand pockets, and margin structures.</p>
<span class="text-brand-primary text-xl">→</span>
</div>
<div onclick="switchView('view-creative')" class="bg-brand-card p-6 sm:p-10 hover:bg-brand-surface transition-all duration-500 group relative overflow-hidden transform hover:-translate-y-2 cursor-pointer rounded-sm md:rounded-none">
<div class="absolute top-0 right-0 p-4 opacity-20 text-5xl sm:text-6xl font-serif text-white group-hover:text-brand-primary transition-colors">02</div>
<div class="mb-6 text-brand-primary group-hover:text-accent-highlight transition-colors">
<svg class="w-10 h-10 sm:w-12 sm:h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg>
</div>
<h3 class="text-lg sm:text-xl font-bold text-text-heading mb-4 group-hover:text-accent-highlight transition-colors">Creative Arbitrage<br>Deployment</h3>
<p class="text-text-body leading-relaxed text-sm mb-6">We optimize CAC using channel diversification, creative economics, and funnel compression.</p>
<span class="text-brand-primary text-xl">→</span>
</div>
<div onclick="switchView('view-retention')" class="bg-brand-card p-6 sm:p-10 hover:bg-brand-surface transition-all duration-500 group relative overflow-hidden transform hover:-translate-y-2 cursor-pointer rounded-sm md:rounded-none">
<div class="absolute top-0 right-0 p-4 opacity-20 text-5xl sm:text-6xl font-serif text-white group-hover:text-brand-primary transition-colors">03</div>
<div class="mb-6 text-brand-primary group-hover:text-accent-highlight transition-colors">
<svg class="w-10 h-10 sm:w-12 sm:h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>
</div>
<h3 class="text-lg sm:text-xl font-bold text-text-heading mb-4 group-hover:text-accent-highlight transition-colors">Retention Capital<br>Engineering</h3>
<p class="text-text-body leading-relaxed text-sm mb-6">We increase LTV using AOV expansion, repeat purchase systems, bundling, and retention design.</p>
<span class="text-brand-primary text-xl">→</span>
</div>
</div>
</div>
</section>
<!-- COMPARISON ARBITRAGE SECTION -->
<section class="section-padding bg-brand-surface border-t border-white/5">
<div class="max-w-7xl mx-auto px-4 sm:px-6">
<div class="grid md:grid-cols-2 gap-12 sm:gap-16 items-center">
<div class="section-title-reveal">
<span class="text-label mb-4 block">03 / The Arbitrage</span>
<h2 class="text-3xl sm:text-4xl md:text-5xl font-serif text-text-heading mb-6">Traditional Agencies <br>Are A Liability.</h2>
<p class="text-text-body leading-relaxed mb-8 text-sm sm:text-base">
Most agencies are incentivized to spend your money, not make you profit. They optimize for "vanity metrics" that look good in a PDF but fail on the P&L. We operate as a financial hedge against inefficiency.
</p>
<div class="flex items-center gap-4">
<div class="h-px bg-white/10 flex-grow"></div>
<span class="text-xs font-bold text-text-dim uppercase tracking-widest">The Divergence</span>
</div>
</div>
<div class="bg-brand-card border border-white/5 p-4 sm:p-8 rounded-sm shadow-card cs-reveal overflow-hidden">
<div class="overflow-x-auto pb-2">
<table class="w-full text-left text-sm min-w-[300px]">
<thead>
<tr>
<th class="pb-6 text-text-dim font-normal uppercase tracking-widest text-[10px]">Operational Vector</th>
<th class="pb-6 text-text-dim font-normal uppercase tracking-widest text-[10px] hidden sm:table-cell">Legacy Model</th>
<th class="pb-6 text-brand-primary font-bold uppercase tracking-widest text-[10px]">The Whale Protocol</th>
</tr>
</thead>
<tbody class="divide-y divide-white/5">
<tr>
<td class="py-4 font-medium text-white pr-4">Optimization Goal</td>
<td class="py-4 text-text-dim hidden sm:table-cell">Blended ROAS</td>
<td class="py-4 text-accent-highlight font-bold">Contribution Margin</td>
</tr>
<tr>
<td class="py-4 font-medium text-white pr-4">Cost Structure</td>
<td class="py-4 text-text-dim hidden sm:table-cell">% of Ad Spend</td>
<td class="py-4 text-accent-highlight font-bold">Flat Fee + Profit Share</td>
</tr>
<tr>
<td class="py-4 font-medium text-white pr-4">Creative Strategy</td>
<td class="py-4 text-text-dim hidden sm:table-cell">Aesthetic / Brand</td>
<td class="py-4 text-accent-highlight font-bold">Psychological Arbitrage</td>
</tr>
<tr>
<td class="py-4 font-medium text-white pr-4">Reporting Cycle</td>
<td class="py-4 text-text-dim hidden sm:table-cell">Monthly PDFs</td>
<td class="py-4 text-accent-highlight font-bold">Real-Time P&L Feed</td>
</tr>
<tr>
<td class="py-4 font-medium text-white pr-4">Scale Velocity</td>
<td class="py-4 text-text-dim hidden sm:table-cell">Quarterly</td>
<td class="py-4 text-accent-highlight font-bold">48-Hour Sprints</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!-- SELECTED WORK -->
<section id="work" class="section-padding bg-brand-secondary border-t border-white/5">
<div class="max-w-7xl mx-auto px-4 sm:px-6">
<div class="text-center mb-12 sm:mb-16 section-title-reveal">
<span class="text-label mb-4 block">04/ Proven Results</span>
<h2 class="text-3xl sm:text-4xl md:text-5xl font-serif text-text-heading">Selected Work</h2>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12 stagger-grid">
<!-- Case Study Items - Mobile optimized padding and layout -->
<div class="group cursor-pointer" onclick="openCaseStudy('rustica')">
<div class="aspect-[4/3] bg-brand-card rounded-sm relative overflow-hidden mb-6 border border-white/5 group-hover:border-accent-highlight/50 transition-colors shadow-card">
<div class="absolute inset-0 bg-brand-surface/50 group-hover:bg-brand-primary/10 transition-colors duration-500"></div>
<div class="absolute inset-0 flex flex-col items-center justify-center text-center p-6 sm:p-8">
<span class="font-serif text-3xl sm:text-4xl text-white/90 mb-2 group-hover:scale-105 transition-transform duration-700">Rustica Bistro</span>
<span class="text-[10px] sm:text-xs tracking-widest uppercase text-accent-highlight mt-2 opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity">Read Case Study</span>
</div>
</div>
<div class="flex justify-between items-end border-b border-white/10 pb-4 group-hover:border-accent-highlight transition-colors">
<div><h3 class="text-xl sm:text-2xl text-text-heading font-medium mb-1">Revenue Turnaround</h3><p class="text-text-body text-xs sm:text-sm">Casual Dining Pune</p></div>
<span class="text-xl sm:text-2xl text-accent-highlight opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity transform -rotate-45">→</span>
</div>
</div>
<div class="group cursor-pointer" onclick="openCaseStudy('ironhive')">
<div class="aspect-[4/3] bg-brand-card rounded-sm relative overflow-hidden mb-6 border border-white/5 group-hover:border-accent-highlight/50 transition-colors shadow-card">
<div class="absolute inset-0 bg-brand-surface/50 group-hover:bg-brand-primary/10 transition-colors duration-500"></div>
<div class="absolute inset-0 flex flex-col items-center justify-center text-center p-6 sm:p-8">
<span class="font-serif text-3xl sm:text-4xl text-white/90 mb-2 group-hover:scale-105 transition-transform duration-700">IronHive</span>
<span class="text-[10px] sm:text-xs tracking-widest uppercase text-accent-highlight mt-2 opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity">Read Case Study</span>
</div>
</div>
<div class="flex justify-between items-end border-b border-white/10 pb-4 group-hover:border-accent-highlight transition-colors">
<div><h3 class="text-xl sm:text-2xl text-text-heading font-medium mb-1">CAC Deflation Model</h3><p class="text-text-body text-xs sm:text-sm">Fitness Mumbai</p></div>
<span class="text-xl sm:text-2xl text-accent-highlight opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity transform -rotate-45">→</span>
</div>
</div>
<div class="group cursor-pointer" onclick="openCaseStudy('glowmint')">
<div class="aspect-[4/3] bg-brand-card rounded-sm relative overflow-hidden mb-6 border border-white/5 group-hover:border-accent-highlight/50 transition-colors shadow-card">
<div class="absolute inset-0 bg-brand-surface/50 group-hover:bg-brand-primary/10 transition-colors duration-500"></div>
<div class="absolute inset-0 flex flex-col items-center justify-center text-center p-6 sm:p-8">
<span class="font-serif text-3xl sm:text-4xl text-white/90 mb-2 group-hover:scale-105 transition-transform duration-700">GlowMint</span>
<span class="text-[10px] sm:text-xs tracking-widest uppercase text-accent-highlight mt-2 opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity">Read Case Study</span>
</div>
</div>
<div class="flex justify-between items-end border-b border-white/10 pb-4 group-hover:border-accent-highlight transition-colors">
<div><h3 class="text-xl sm:text-2xl text-text-heading font-medium mb-1">D2C Margin Scale</h3><p class="text-text-body text-xs sm:text-sm">Beauty India-Wide</p></div>
<span class="text-xl sm:text-2xl text-accent-highlight opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity transform -rotate-45">→</span>
</div>
</div>
<div class="group cursor-pointer" onclick="openCaseStudy('skyline')">
<div class="aspect-[4/3] bg-brand-card rounded-sm relative overflow-hidden mb-6 border border-white/5 group-hover:border-accent-highlight/50 transition-colors shadow-card">
<div class="absolute inset-0 bg-brand-surface/50 group-hover:bg-brand-primary/10 transition-colors duration-500"></div>
<div class="absolute inset-0 flex flex-col items-center justify-center text-center p-6 sm:p-8">
<span class="font-serif text-3xl sm:text-4xl text-white/90 mb-2 group-hover:scale-105 transition-transform duration-700">Skyline</span>
<span class="text-[10px] sm:text-xs tracking-widest uppercase text-accent-highlight mt-2 opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity">Read Case Study</span>
</div>
</div>
<div class="flex justify-between items-end border-b border-white/10 pb-4 group-hover:border-accent-highlight transition-colors">
<div><h3 class="text-xl sm:text-2xl text-text-heading font-medium mb-1">High-Ticket Velocity</h3><p class="text-text-body text-xs sm:text-sm">Real Estate Thane</p></div>
<span class="text-xl sm:text-2xl text-accent-highlight opacity-100 sm:opacity-0 group-hover:opacity-100 transition-opacity transform -rotate-45">→</span>
</div>
</div>
</div>
</div>
</section>
<!-- FAQ SECTION -->
<section class="section-padding bg-brand-surface border-t border-white/5">
<div class="max-w-4xl mx-auto px-4 sm:px-6">
<div class="text-center mb-12 section-title-reveal">
<span class="text-label mb-2 block">05/ Clarity</span>
<h2 class="text-3xl sm:text-4xl font-serif text-text-heading">Frequently Asked Questions</h2>
</div>
<div class="space-y-4">
<details class="group bg-brand-card border border-white/5 rounded-lg open:border-accent-highlight/30 transition-all duration-300">
<summary class="flex justify-between items-center cursor-pointer p-6 font-bold text-text-heading">
<span class="text-sm sm:text-base pr-4">"How do you ensure every rupee I spend actually generates measurable returns?"</span>
<span class="text-brand-primary group-open:rotate-180 transition-transform shrink-0">▼</span>
</summary>
<div class="px-6 pb-6 text-text-body text-sm leading-relaxed">
At Whale, campaigns don't run on vibes—they run on financial logic. <br><br>
Every project begins with a Growth P&L, where we forecast CAC, retention lift, contribution margin, and ROI scenarios before a single ad goes live.
</div>
</details>
<details class="group bg-brand-card border border-white/5 rounded-lg open:border-accent-highlight/30 transition-all duration-300">
<summary class="flex justify-between items-center cursor-pointer p-6 font-bold text-text-heading">
<span class="text-sm sm:text-base pr-4">"My brand isn't a big enterprise—can Whale Marketing still create impact?"</span>
<span class="text-brand-primary group-open:rotate-180 transition-transform shrink-0">▼</span>
</summary>
<div class="px-6 pb-6 text-text-body text-sm leading-relaxed">
Absolutely. We take enterprise-grade marketing structures and compress them into a format that emerging companies can deploy. Small teams scale faster when the strategy is built like a high-performance machine.
</div>
</details>
<details class="group bg-brand-card border border-white/5 rounded-lg open:border-accent-highlight/30 transition-all duration-300">
<summary class="flex justify-between items-center cursor-pointer p-6 font-bold text-text-heading">
<span class="text-sm sm:text-base pr-4">"What makes Whale Marketing different from standard agencies?"</span>
<span class="text-brand-primary group-open:rotate-180 transition-transform shrink-0">▼</span>
</summary>
<div class="px-6 pb-6 text-text-body text-sm leading-relaxed">
Most agencies sell deliverables. Whale sells business outcomes. We architect your entire revenue engine—from top-funnel attention to bottom-funnel conversion to long-term retention.
</div>
</details>
</div>
</div>
</section>
<!-- CTA SECTION -->
<section class="py-20 sm:py-32 bg-brand-secondary border-t border-white/5 relative overflow-hidden flex flex-col items-center justify-center text-center">
<div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-[300px] h-[300px] sm:w-[500px] sm:h-[500px] bg-brand-primary/10 rounded-full blur-[80px] sm:blur-[100px] pointer-events-none"></div>
<div class="relative z-10 max-w-4xl px-4 sm:px-6 section-title-reveal">
<span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-6 block">06/Initiate Protocol</span>
<h2 class="text-4xl sm:text-6xl md:text-8xl font-serif text-text-heading mb-6 sm:mb-8">Secure Your Profit Margin.</h2>
<p class="text-base sm:text-xl text-text-body mb-8 sm:mb-12 font-light max-w-2xl mx-auto">
Speak directly with a growth strategist not a sales rep. This is a qualification call, not a pitch.
</p>
<div class="flex flex-col sm:flex-row gap-4 sm:gap-8 justify-center items-center w-full sm:w-auto">
<button onclick="openBooking()" class="group relative inline-flex items-center justify-center gap-4 px-8 sm:px-12 py-5 sm:py-6 bg-accent-cta text-brand-secondary font-bold text-xs sm:text-sm tracking-widest uppercase hover:bg-white transition-all duration-500 rounded-sm shadow-xl hover:shadow-cta-hover transform hover:scale-105 cursor-pointer z-20 w-full sm:w-auto">
<span>Deploy Systemic Solvency</span>
<svg class="w-4 h-4 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path></svg>
</button>
<button onclick="switchView('calculator')" class="px-8 py-5 sm:py-6 text-accent-highlight text-sm font-bold tracking-widest uppercase hover:text-white transition-colors border-b border-transparent hover:border-accent-highlight cursor-pointer z-20 w-full sm:w-auto text-center">
Run Unit Economics Test →
</button>
</div>
</div>
</section>
</main> <!-- END MAIN CONTENT -->
<!-- FOOTER & STICKY LEAD MAGNET -->
<footer class="bg-brand-secondary border-t border-white/5 py-12 sm:py-16 text-text-body">
<div class="max-w-7xl mx-auto px-4 sm:px-6">
<div class="flex flex-col md:flex-row justify-between items-start gap-12 mb-12">
<div>
<div class="flex flex-row items-baseline gap-1.5 mb-6">
<span class="font-bold tracking-tight text-xl leading-none text-text-heading">WHALE</span>
<span class="font-bold tracking-tight text-xl leading-none text-text-heading">MARKETING</span>
</div>
<p class="text-sm max-w-xs leading-relaxed text-text-dim">We engineer growth systems using financial intelligence.</p>
</div>
<div class="grid grid-cols-2 gap-12 text-sm">
<div>
<h4 class="text-white font-bold mb-4 uppercase tracking-widest text-xs">Locations</h4>
<ul class="space-y-2 text-text-dim"><li>Mumbai, India</li><li>New York, USA</li><li>London, UK</li></ul>
</div>
<div>
<h4 class="text-white font-bold mb-4 uppercase tracking-widest text-xs">Legal</h4>
<ul class="space-y-2 text-text-dim"><li><a href="#" class="hover:text-accent-highlight">Privacy Policy</a></li><li><a href="#" class="hover:text-accent-highlight">Terms of Service</a></li></ul>
</div>
</div>
</div>
<div class="flex flex-col md:flex-row justify-between items-center pt-8 border-t border-white/5 text-xs uppercase tracking-widest text-text-dim text-center md:text-left gap-4">
<p>© 2025 The Whale Marketing. Built for scale.</p>
<div class="flex gap-8"><a href="#" class="hover:text-white transition-colors">LinkedIn</a><a href="#" class="hover:text-white transition-colors">Twitter</a><a href="#" class="hover:text-white transition-colors">Email</a></div>
</div>
</div>
</footer>
<div class="fixed bottom-4 right-4 z-40 w-[calc(100%-2rem)] sm:w-auto">
<button onclick="openModal('modal-pdf')" class="bg-brand-primary text-white p-4 rounded-full shadow-2xl hover:scale-105 transition-transform flex items-center justify-center gap-3 border border-white/10 cursor-pointer w-full sm:w-auto">
<span class="w-3 h-3 bg-accent-highlight rounded-full animate-pulse"></span>
<span class="text-xs font-bold tracking-wider">DOWNLOAD PROTOCOL</span>
</button>
</div>
</div> <!-- END MAIN SITE VIEW -->
<!-- CALCULATOR VIEW (ADVANCED FINANCIAL STRESS TEST) -->
<div id="calculator-view" style="display:none;" class="min-h-screen bg-brand-secondary flex flex-col">
<nav class="w-full py-4 sm:py-6 px-4 sm:px-8 flex justify-between items-center bg-brand-secondary/90 backdrop-blur-md border-b border-white/5 sticky top-0 z-50">
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg leading-none text-text-heading">WHALE</span>
</div>
<button onclick="switchView('main')" class="text-[10px] sm:text-xs font-bold tracking-widest text-brand-primary hover:text-white transition-colors uppercase">Exit Calculator</button>
</nav>
<div class="flex-grow flex flex-col lg:flex-row h-full">
<div class="w-full lg:w-1/2 p-6 sm:p-8 lg:p-12 flex flex-col justify-center bg-brand-secondary relative border-r border-white/5 overflow-y-auto">
<div class="max-w-lg mx-auto w-full z-10 pb-10">
<span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-4 block">Step 1: Input Vector</span>
<h1 class="text-2xl sm:text-3xl md:text-4xl font-serif text-text-heading mb-2">The Arbitrage Stress Test</h1>
<p class="text-text-body mb-8 text-sm font-mono">Quantify risk. Diagnose the unit economics ceiling.</p>
<form onsubmit="event.preventDefault(); calculateMetrics();" class="space-y-6">
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4 sm:gap-6">
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">Avg. Order Value (AOV)</label>
<input type="number" id="aov" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="$0.00">
</div>
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">COGS (Per Unit)</label>
<input type="number" id="cogs" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="$0.00">
</div>
</div>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4 sm:gap-6">
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">Monthly Ad Spend (CAD)</label>
<input type="number" id="spend" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="$0.00">
</div>
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">Monthly Gross Revenue</label>
<input type="number" id="revenue" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="$0.00">
</div>
</div>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4 sm:gap-6">
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">New Customers Acquired</label>
<input type="number" id="customers" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="0">
</div>
<div>
<label class="block text-[10px] font-bold uppercase tracking-widest text-text-dim mb-2">Purchase Frequency (LTV)</label>
<input type="number" id="frequency" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-3 rounded-sm outline-none font-mono text-sm" placeholder="e.g. 1.5" step="0.1">
</div>
</div>
<button type="submit" class="w-full bg-brand-primary text-white font-bold py-4 rounded-sm shadow-lg hover:bg-white transition-all uppercase tracking-widest text-xs mt-4 border border-white/10">EXECUTE FINANCIAL DIAGNOSTIC</button>
</form>
</div>
</div>
<div class="w-full lg:w-1/2 bg-brand-surface p-6 sm:p-8 lg:p-12 flex flex-col justify-center relative overflow-hidden min-h-[500px]">
<div id="dashboard-placeholder" class="text-center absolute inset-0 flex flex-col items-center justify-center pointer-events-none opacity-50">
<div class="w-16 h-16 border-2 border-brand-primary rounded-full border-t-transparent animate-spin mb-4"></div>
<p class="text-xs font-mono text-brand-primary animate-pulse">SYSTEM_STANDBY...</p>
</div>
<div id="resultsPanel" class="relative z-10 opacity-0 transition-all duration-700 transform translate-y-4">
<div class="bg-brand-card border-t-4 border-accent-alert p-6 sm:p-8 rounded-sm shadow-2xl mb-8 relative overflow-hidden" id="score-card">
<div class="absolute top-0 right-0 p-4 opacity-10 text-4xl sm:text-6xl font-mono text-white">SCORE</div>
<h3 class="text-xs font-bold tracking-widest text-text-dim uppercase mb-2">Growth Viability Index</h3>
<div class="text-5xl sm:text-6xl font-serif text-white mb-2 font-medium" id="scoreDisplay">--</div>
<div id="scoreLabel" class="text-accent-alert text-sm font-bold uppercase tracking-widest">Awaiting Data</div>
</div>
<div class="grid grid-cols-2 gap-4 mb-8">
<div class="bg-brand-card border border-white/5 p-4 rounded-sm">
<div class="text-[8px] sm:text-[10px] uppercase tracking-wider text-text-dim mb-1">Break-Even ROAS</div>
<div class="text-xl sm:text-2xl font-mono text-white" id="beRoasDisplay">--</div>
</div>
<div class="bg-brand-card border border-white/5 p-4 rounded-sm">
<div class="text-[8px] sm:text-[10px] uppercase tracking-wider text-text-dim mb-1">Media Efficiency</div>
<div class="text-xl sm:text-2xl font-mono text-white" id="merDisplay">--</div>
</div>
<div class="bg-brand-card border border-white/5 p-4 rounded-sm">
<div class="text-[8px] sm:text-[10px] uppercase tracking-wider text-text-dim mb-1">Acquisition (CAC)</div>
<div class="text-xl sm:text-2xl font-mono text-white" id="cacDisplay">--</div>
</div>
<div class="bg-brand-card border border-white/5 p-4 rounded-sm">
<div class="text-[8px] sm:text-[10px] uppercase tracking-wider text-text-dim mb-1">Lifetime Value (LTV)</div>
<div class="text-xl sm:text-2xl font-mono text-white" id="ltvDisplay">--</div>
</div>
</div>
<div class="bg-brand-secondary border border-brand-primary/30 p-6 rounded-sm">
<h4 class="text-brand-primary text-xs font-bold uppercase mb-2 flex items-center gap-2">
<span class="w-2 h-2 bg-brand-primary rounded-full animate-pulse"></span> Strategic Diagnosis
</h4>
<p id="diagnosisText" class="text-text-body text-sm leading-relaxed mb-4">Input your data to receive a strategic roadmap.</p>
<div class="pt-4 border-t border-white/5">
<p class="text-[10px] text-text-dim uppercase mb-1">Recommended Action:</p>
<p id="nextActionText" class="text-white text-sm font-semibold">--</p>
</div>
</div>
<div class="chart-container mb-6 mt-6">
<canvas id="growthChart"></canvas>
</div>
<div class="mt-8 flex justify-end">
<button onclick="openBooking()" class="text-xs font-bold text-accent-highlight hover:text-white transition-colors border-b border-accent-highlight pb-1">Discuss This Data →</button>
</div>
</div>
</div>
</div>
</div>
<!-- METHODOLOGY/DETAILED CASE STUDY VIEW -->
<div id="methodology-view" style="display:none;" class="min-h-screen bg-brand-secondary flex flex-col">
<nav class="w-full py-4 sm:py-6 px-4 sm:px-8 flex justify-between items-center bg-brand-secondary/95 backdrop-blur-md border-b border-white/5 sticky top-0 z-50">
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg leading-none text-text-heading">WHALE</span>
</div>
<button onclick="switchView('main')" class="text-xs font-bold tracking-widest text-brand-primary hover:text-white transition-colors uppercase flex items-center gap-2">
<span>← Back</span>
</button>
</nav>
<div class="max-w-5xl mx-auto px-4 sm:px-6 py-16 sm:py-20 w-full">
<div class="mb-16 sm:mb-20 text-center cs-reveal">
<span class="text-accent-highlight text-xs font-bold tracking-elite uppercase mb-6 block">Deep Dive Analysis</span>
<h1 class="text-4xl sm:text-5xl md:text-7xl font-serif text-text-heading mb-8">The Architecture <br>of Solvency.</h1>
<p class="text-lg sm:text-xl text-text-body max-w-3xl mx-auto leading-relaxed font-light">
A forensic breakdown of how we convert marketing spend into a predictable, compoundable asset class.
</p>
</div>
<div class="grid md:grid-cols-12 gap-8 md:gap-12 mb-16 sm:mb-24 border-t border-white/5 pt-12 cs-reveal">
<div class="md:col-span-4">
<div class="text-5xl sm:text-6xl font-serif text-brand-card font-bold mb-4 opacity-50">01</div>
<h2 class="text-2xl sm:text-3xl text-text-heading font-medium mb-4">Financial Architecture Audit</h2>
<p class="text-sm text-text-dim uppercase tracking-widest">The Balance Sheet Recon</p>
</div>
<div class="md:col-span-8">
<p class="text-base sm:text-lg text-text-body leading-relaxed mb-6">
Before a single dollar is deployed into ad inventory, we conduct a forensic audit of your Unit Economics. We do not accept "blended ROAS" as a metric. We isolate <strong class="text-white">Contribution Margin III</strong> (Profit after COGS, Shipping, Payment Processing, and Ad Spend).
</p>
<ul class="space-y-4 text-sm text-text-body">
<li class="flex items-start gap-3"><span class="text-accent-highlight">></span><span><strong>Break-Even Analysis:</strong> We calculate the exact CPA threshold where you start bleeding cash.</span></li>
<li class="flex items-start gap-3"><span class="text-accent-highlight">></span><span><strong>Margin Expansion:</strong> We identify immediate pricing elasticity opportunities.</span></li>
</ul>
</div>
</div>
<!-- Deep Dive 02 -->
<div class="grid md:grid-cols-12 gap-8 md:gap-12 mb-16 sm:mb-24 border-t border-white/5 pt-12 cs-reveal">
<div class="md:col-span-4">
<div class="text-5xl sm:text-6xl font-serif text-brand-card font-bold mb-4 opacity-50">02</div>
<h2 class="text-2xl sm:text-3xl text-text-heading font-medium mb-4">Creative Arbitrage Deployment</h2>
<p class="text-sm text-text-dim uppercase tracking-widest">The Arbitrage Engine</p>
</div>
<div class="md:col-span-8">
<p class="text-base sm:text-lg text-text-body leading-relaxed mb-6">
Creative is no longer "art"—it is a financial lever for lowering CPMs (Cost Per Mille). We deploy "High-Status/High-Trust" creative assets designed to bypass consumer skepticism filters.
</p>
<div class="bg-brand-card p-6 rounded-sm border-l-4 border-brand-primary mb-6">
<h4 class="text-white font-bold mb-2 text-sm uppercase">The 'Anti-Marketing' Framework</h4>
<p class="text-sm text-text-dim">We stop looking like ads. We deploy UGC that feels like peer reviews.</p>
</div>
</div>
</div>
<!-- Deep Dive 03 -->
<div class="grid md:grid-cols-12 gap-8 md:gap-12 mb-16 sm:mb-24 border-t border-white/5 pt-12 cs-reveal">
<div class="md:col-span-4">
<div class="text-5xl sm:text-6xl font-serif text-brand-card font-bold mb-4 opacity-50">03</div>
<h2 class="text-2xl sm:text-3xl text-text-heading font-medium mb-4">Retention Capital Engineering</h2>
<p class="text-sm text-text-dim uppercase tracking-widest">The LTV Compounder</p>
</div>
<div class="md:col-span-8">
<p class="text-base sm:text-lg text-text-body leading-relaxed mb-6">
Acquisition is for vanity; Retention is for sanity. The real profit is made on the 2nd, 3rd, and 4th purchase. We engineer automated email and SMS flows that function as a "printing press" for zero-cost revenue.
</p>
</div>
</div>
<div class="bg-brand-surface border border-white/5 p-6 sm:p-12 rounded-sm cs-reveal relative overflow-hidden">
<div class="absolute top-0 right-0 w-64 h-64 bg-accent-highlight/5 rounded-full blur-[80px]"></div>
<div class="relative z-10">
<span class="text-accent-cta text-xs font-bold tracking-elite uppercase mb-6 block">Protocol in Action</span>
<h2 class="text-3xl sm:text-4xl font-serif text-text-heading mb-8">Case Study: Project Alpha</h2>
<div class="grid grid-cols-1 sm:grid-cols-3 gap-6 sm:gap-8 mb-12">
<div><div class="text-sm text-text-dim mb-1">Sector</div><div class="text-white font-medium">Premium D2C Apparel</div></div>
<div><div class="text-sm text-text-dim mb-1">Starting MRR</div><div class="text-white font-medium">₹4.5 Lakhs</div></div>
<div><div class="text-sm text-text-dim mb-1">Ending MRR</div><div class="text-white font-medium">₹82.0 Lakhs</div></div>
</div>
<div class="space-y-6">
<div class="p-6 bg-brand-card border-l-2 border-accent-alert">
<h4 class="text-white font-bold mb-2">The Crisis</h4>
<p class="text-sm text-text-body">Client was spending ₹2L/mo on ads with a ROAS of 1.2x. They were losing money on every sale after factoring in COGS.</p>
</div>
<div class="p-6 bg-brand-card border-l-2 border-accent-cta">
<h4 class="text-white font-bold mb-2">The Whale Intervention</h4>
<p class="text-sm text-text-body mb-4">1. <strong>Pricing:</strong> We raised prices by 20% to create margin breathing room.<br>2. <strong>Offer:</strong> Switched from "Buy 1" to "Buy 3 Pack" bundles.</p>
<div class="flex items-center gap-4 pt-4 border-t border-white/5">
<span class="text-accent-cta font-bold text-lg sm:text-xl">Result:</span>
<span class="text-white text-sm">ROAS jumped to 4.1x.</span>
</div>
</div>
</div>
</div>
</div>
<div class="mt-20 pt-12 border-t border-white/10 text-center">
<button onclick="switchView('main')" class="text-text-dim hover:text-white transition-colors text-sm uppercase tracking-widest">Back to Homepage</button>
</div>
</div>
</div>
<!-- NEW: SERVICE VIEW 1 - AUDIT -->
<div id="view-audit" style="display:none;" class="min-h-screen bg-brand-secondary flex flex-col">
<nav class="w-full py-4 sm:py-6 px-4 sm:px-8 flex justify-between items-center bg-brand-secondary/95 backdrop-blur-md border-b border-white/5 sticky top-0 z-50">
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg leading-none text-text-heading">WHALE</span>
</div>
<button onclick="switchView('main')" class="text-xs font-bold tracking-widest text-brand-primary hover:text-white transition-colors uppercase flex items-center gap-2"><span>← Return</span></button>
</nav>
<div class="max-w-5xl mx-auto px-4 sm:px-6 py-16 sm:py-20 w-full cs-reveal">
<span class="text-accent-highlight text-xs font-bold tracking-elite uppercase mb-6 block">Phase 01 / Diagnostic</span>
<h1 class="text-4xl sm:text-5xl md:text-7xl font-serif text-text-heading mb-8">Financial Architecture <br>& Unit Economics Audit.</h1>
<p class="text-lg sm:text-xl text-text-body max-w-3xl leading-relaxed font-light mb-12">We do not launch campaigns based on intuition. We launch based on solvent mathematics. This phase is a forensic tear-down of your P&L to identify the true cost of growth.</p>
<div class="grid md:grid-cols-2 gap-8 mb-16">
<div class="bg-brand-card p-6 sm:p-8 border border-white/5 rounded-sm">
<h3 class="text-white font-bold mb-4 uppercase tracking-widest text-sm">The "Bleed" Analysis</h3>
<div class="space-y-4">
<div class="flex justify-between text-sm text-text-dim border-b border-white/5 pb-2"><span>Gross Margin</span><span class="text-white">65%</span></div>
<div class="flex justify-between text-sm text-text-dim border-b border-white/5 pb-2"><span>Break-Even ROAS</span><span class="text-accent-alert font-bold">1.54x</span></div>
<div class="flex justify-between text-sm text-text-dim border-b border-white/5 pb-2"><span>Current ROAS</span><span class="text-white">1.3x (Loss)</span></div>
<div class="mt-4 p-4 bg-accent-alert/10 border border-accent-alert/20 text-accent-alert text-xs font-bold">WARNING: SCALING NOW ACCELERATES BANKRUPTCY.</div>
</div>
</div>
</div>
<div class="mt-12 sm:mt-20 pt-12 border-t border-white/10 text-center">
<button onclick="openBooking()" class="px-8 py-4 bg-accent-cta text-brand-secondary font-bold text-xs tracking-widest uppercase hover:bg-white transition-all shadow-lg rounded-sm">Schedule Financial Audit</button>
</div>
</div>
</div>
<!-- NEW: SERVICE VIEW 2 - CREATIVE -->
<div id="view-creative" style="display:none;" class="min-h-screen bg-brand-secondary flex flex-col">
<nav class="w-full py-4 sm:py-6 px-4 sm:px-8 flex justify-between items-center bg-brand-secondary/95 backdrop-blur-md border-b border-white/5 sticky top-0 z-50">
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg leading-none text-text-heading">WHALE</span>
</div>
<button onclick="switchView('main')" class="text-xs font-bold tracking-widest text-brand-primary hover:text-white transition-colors uppercase flex items-center gap-2"><span>← Return</span></button>
</nav>
<div class="max-w-5xl mx-auto px-4 sm:px-6 py-16 sm:py-20 w-full cs-reveal">
<span class="text-accent-highlight text-xs font-bold tracking-elite uppercase mb-6 block">Phase 02 / Deployment</span>
<h1 class="text-4xl sm:text-5xl md:text-7xl font-serif text-text-heading mb-8">Creative Arbitrage <br>& Deployment.</h1>
<p class="text-lg sm:text-xl text-text-body max-w-3xl leading-relaxed font-light mb-12">We do not create "ads". We create "assets" designed to lower CPMs through psychological relevance.</p>
<div class="mt-12 sm:mt-20 pt-12 border-t border-white/10 text-center">
<button onclick="openBooking()" class="px-8 py-4 bg-accent-cta text-brand-secondary font-bold text-xs tracking-widest uppercase hover:bg-white transition-all shadow-lg rounded-sm">Launch Creative Sprint</button>
</div>
</div>
</div>
<!-- NEW: SERVICE VIEW 3 - RETENTION -->
<div id="view-retention" style="display:none;" class="min-h-screen bg-brand-secondary flex flex-col">
<nav class="w-full py-4 sm:py-6 px-4 sm:px-8 flex justify-between items-center bg-brand-secondary/95 backdrop-blur-md border-b border-white/5 sticky top-0 z-50">
<div class="flex flex-row items-baseline gap-1.5">
<span class="font-bold tracking-tight text-lg leading-none text-text-heading">WHALE</span>
</div>
<button onclick="switchView('main')" class="text-xs font-bold tracking-widest text-brand-primary hover:text-white transition-colors uppercase flex items-center gap-2"><span>← Return</span></button>
</nav>
<div class="max-w-5xl mx-auto px-4 sm:px-6 py-16 sm:py-20 w-full cs-reveal">
<span class="text-accent-highlight text-xs font-bold tracking-elite uppercase mb-6 block">Phase 03 / Compounding</span>
<h1 class="text-4xl sm:text-5xl md:text-7xl font-serif text-text-heading mb-8">Retention Capital <br>& LTV Engineering.</h1>
<p class="text-lg sm:text-xl text-text-body max-w-3xl leading-relaxed font-light mb-12">Acquisition is where you buy the customer. Retention is where you profit from them.</p>
<div class="mt-12 sm:mt-20 pt-12 border-t border-white/10 text-center">
<button onclick="openBooking()" class="px-8 py-4 bg-white text-brand-secondary font-bold text-xs tracking-widest uppercase hover:bg-accent-highlight transition-all shadow-lg rounded-sm">Engineer Your LTV</button>
</div>
</div>
</div>
<!-- PDF LEAD MAGNET MODAL -->
<div id="modal-pdf" class="fixed inset-0 z-[100] bg-brand-secondary/95 backdrop-blur-lg flex flex-col justify-center items-center opacity-0 pointer-events-none transition-opacity duration-300 p-4">
<button onclick="closeModal(document.getElementById('modal-pdf'))" class="absolute top-6 right-6 text-white hover:text-accent-highlight transition-colors hover:rotate-90 duration-300"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button>
<div class="bg-brand-card p-6 sm:p-10 rounded-sm shadow-2xl max-w-lg w-full border border-white/10 relative overflow-hidden">
<div class="absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-brand-primary via-accent-highlight to-brand-primary"></div>
<span class="text-accent-highlight text-xs font-bold tracking-elite uppercase mb-4 block">Classified Intelligence</span>
<h2 class="text-2xl sm:text-3xl font-serif text-white mb-4">Access The Master Dossier.</h2>
<p class="text-text-body text-sm mb-8 leading-relaxed">
Enter your professional email to unlock The Whale Protocol (PDF). 31 pages of financial architecture and evolutionary psychology.
</p>
<form onsubmit="event.preventDefault(); downloadPDF(this);" class="space-y-4">
<div>
<label class="block text-xs font-bold uppercase tracking-elite text-text-dim mb-2">Work Email Address</label>
<input type="email" required class="w-full bg-brand-secondary border border-white/10 focus:border-brand-primary text-white p-4 rounded-sm outline-none transition-colors" placeholder="executive@company.com">
</div>
<button type="submit" class="w-full bg-brand-primary text-white font-bold py-4 rounded-sm shadow-lg hover:bg-accent-highlight transition-all uppercase tracking-widest text-xs flex justify-center items-center gap-2">
<span>Unlock Protocol</span>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg>
</button>
<p class="text-center text-[10px] text-text-dim pt-2 uppercase tracking-widest">Secure Transmission • No Spam</p>
</form>
</div>
</div>
<!-- BOOKING MODAL -->
<div id="modal-booking" class="fixed inset-0 z-[100] bg-brand-secondary/95 backdrop-blur-lg overflow-y-auto case-study-modal opacity-0 pointer-events-none">
<button onclick="closeBooking()" class="fixed top-8 right-8 z-[101] text-white hover:text-accent-highlight transition-colors hover:rotate-90 duration-300"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button>
<div class="max-w-7xl mx-auto px-4 sm:px-6 py-24 flex flex-col lg:flex-row items-center justify-center min-h-screen">
<div class="w-full bg-brand-card p-6 sm:p-10 rounded-lg shadow-2xl border border-white/10 cs-reveal transform scale-95">
<div class="grid lg:grid-cols-12 gap-8 lg:gap-16 items-start">
<div class="lg:col-span-5"><span class="text-label mb-4 block">04/ The Breach</span><h2 class="text-3xl sm:text-5xl font-serif text-text-heading mb-6">Acquire Your <br>Competitive Edge.</h2><p class="text-text-body leading-relaxed mb-8 text-sm sm:text-base">Select a time to speak with a senior strategist. We will analyze your P&L and map out immediate margin expansion opportunities.</p><div class="bg-brand-secondary p-4 sm:p-8 rounded-sm shadow-card border-t-4 border-brand-primary"><div class="flex justify-between items-center mb-6"><h3 class="font-bold text-base sm:text-lg text-white">November 2025</h3><div class="flex gap-2"><button class="w-8 h-8 flex items-center justify-center rounded-full hover:bg-brand-card text-brand-primary">←</button><button class="w-8 h-8 flex items-center justify-center rounded-full hover:bg-brand-card text-brand-primary">→</button></div></div><div class="grid grid-cols-7 gap-2 mb-2 text-center text-xs font-bold text-text-dim uppercase tracking-wider"><div>Mo</div><div>Tu</div><div>We</div><div>Th</div><div>Fr</div><div>Sa</div><div>Su</div></div><div class="grid grid-cols-7 gap-2" id="calendar-grid"><div class="calendar-day disabled">28</div><div class="calendar-day disabled">29</div><div class="calendar-day disabled">30</div><div class="calendar-day">1</div><div class="calendar-day">2</div><div class="calendar-day">3</div><div class="calendar-day">4</div><div class="calendar-day">5</div><div class="calendar-day selected">6</div><div class="calendar-day">7</div><div class="calendar-day">8</div><div class="calendar-day">9</div><div class="calendar-day">10</div><div class="calendar-day">11</div><div class="calendar-day">12</div><div class="calendar-day">13</div><div class="calendar-day">14</div><div class="calendar-day">15</div><div class="calendar-day">16</div><div class="calendar-day">17</div><div class="calendar-day">18</div><div class="calendar-day">19</div><div class="calendar-day">20</div><div class="calendar-day">21</div><div class="calendar-day">22</div><div class="calendar-day">23</div><div class="calendar-day">24</div><div class="calendar-day">25</div><div class="calendar-day">26</div><div class="calendar-day">27</div><div class="calendar-day">28</div></div></div></div>
<div class="lg:col-span-7 bg-brand-secondary p-6 sm:p-10 shadow-card rounded-sm lg:mt-20 border border-white/5"><div class="mb-8 border-b border-white/10 pb-6"><h3 class="text-xl font-bold text-white mb-4">Available Slots <span class="text-brand-primary font-normal text-base ml-2"> Thurs, Nov 6</span></h3><div class="grid grid-cols-2 sm:grid-cols-4 gap-3"><div class="time-slot">10:00 AM</div><div class="time-slot selected">11:30 AM</div><div class="time-slot">01:00 PM</div><div class="time-slot">02:30 PM</div><div class="time-slot">04:00 PM</div><div class="time-slot">05:15 PM</div></div></div><form onsubmit="event.preventDefault(); alert('Booking Confirmed!');"><div class="grid md:grid-cols-2 gap-6 mb-6"><div><label class="block text-xs font-bold uppercase tracking-elite text-text-dim mb-2">Name</label><input type="text" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-4 rounded-sm outline-none" placeholder="John Doe"></div><div><label class="block text-xs font-bold uppercase tracking-elite text-text-dim mb-2">Work Email</label><input type="email" class="w-full bg-brand-card border border-white/10 focus:border-brand-primary text-white p-4 rounded-sm outline-none" placeholder="john@company.com"></div></div><button type="submit" class="w-full bg-accent-cta text-brand-secondary font-bold py-5 rounded-sm shadow-lg hover:bg-white transition-all uppercase tracking-widest text-sm">INITIATE PARTNERSHIP MANDATE</button></form></div>
</div>
</div>
</div>
</div>
<!-- CASE STUDY MODALS -->
<div id="modal-rustica" class="fixed inset-0 z-[100] bg-brand-secondary text-white overflow-y-auto case-study-modal opacity-0 pointer-events-none"><button onclick="closeCaseStudy('rustica')" class="fixed top-8 right-8 z-[101] text-white hover:text-accent-highlight transition-colors"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button><div class="max-w-5xl mx-auto px-4 sm:px-6 py-24"><div class="border-b border-white/10 pb-12 mb-12 cs-reveal"><span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-4 block">Case Study: 01</span><h1 class="text-4xl sm:text-6xl md:text-8xl font-serif mb-8 text-white">Rustica Bistro</h1><div class="flex flex-wrap gap-4 sm:gap-8 text-xs sm:text-sm text-text-body font-light tracking-widest uppercase"><span>Casual Dining</span><span>Pune</span><span>4 Months</span></div></div><div class="mb-16 cs-reveal"><h3 class="text-xl font-bold text-white mb-6">Financial Impact</h3><table class="metric-table"><thead><tr><th>Metric</th><th>Before</th><th>After</th><th>Impact</th></tr></thead><tbody><tr><td>Revenue</td><td class="metric-bad">₹3.6L</td><td class="metric-good">₹7.8L</td><td>+116%</td></tr><tr><td>Footfall</td><td class="metric-bad">18/day</td><td class="metric-good">52/day</td><td>+188%</td></tr><tr><td>Net Margin</td><td class="metric-bad">-7%</td><td class="metric-good">+14%</td><td>Profit Flip</td></tr></tbody></table></div><div class="grid md:grid-cols-2 gap-16 mb-24 cs-reveal"><div><h3 class="text-2xl font-serif text-white mb-6">The Anchor</h3><p class="text-text-body leading-relaxed">Rustica was suffering from invisibility. Low weekday footfall (18-22/day) and -7% net margin due to discount-heavy marketing.</p></div><div><h3 class="text-2xl font-serif text-white mb-6">Diagnostic</h3><ul class="space-y-4 text-text-body text-sm"><li class="flex justify-between border-b border-white/10 pb-2"><span>Avg Ticket Size</span><span class="text-white">₹420</span></li><li class="flex justify-between border-b border-white/10 pb-2"><span>Break-even Point</span><span class="text-white">45 Orders/Day</span></li></ul></div></div><div class="text-center py-12 border-t border-white/10 cs-reveal"><button onclick="closeCaseStudy('rustica')" class="text-brand-primary text-sm font-bold tracking-widest uppercase hover:text-white">Close Case Study</button></div></div></div>
<div id="modal-ironhive" class="fixed inset-0 z-[100] bg-brand-secondary text-white overflow-y-auto case-study-modal opacity-0 pointer-events-none"><button onclick="closeCaseStudy('ironhive')" class="fixed top-8 right-8 z-[101] text-white hover:text-accent-highlight transition-colors"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button><div class="max-w-5xl mx-auto px-4 sm:px-6 py-24"><div class="border-b border-white/10 pb-12 mb-12 cs-reveal"><span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-4 block">Case Study: 02</span><h1 class="text-4xl sm:text-6xl md:text-8xl font-serif mb-8 text-white">IronHive Fitness</h1><div class="flex flex-wrap gap-4 sm:gap-8 text-xs sm:text-sm text-text-body font-light tracking-widest uppercase"><span>Boutique Fitness</span><span>Mumbai</span><span>5 Months</span></div></div><div class="mb-16 cs-reveal"><h3 class="text-xl font-bold text-white mb-6">Financial Impact</h3><table class="metric-table"><thead><tr><th>Metric</th><th>Before</th><th>After</th><th>Impact</th></tr></thead><tbody><tr><td>Members</td><td class="metric-bad">72</td><td class="metric-good">138</td><td>+91%</td></tr><tr><td>CPL</td><td class="metric-bad">₹1,200</td><td class="metric-good">₹88</td><td>-93%</td></tr><tr><td>Run Rate</td><td class="metric-bad">₹46L</td><td class="metric-good">₹82L</td><td>Scale</td></tr><tr><td>Net Margin</td><td class="metric-bad">5%</td><td class="metric-good">22%</td><td>+340%</td></tr></tbody></table></div><div class="text-center py-12 border-t border-white/10 mt-12 cs-reveal"><button onclick="closeCaseStudy('ironhive')" class="text-brand-primary text-sm font-bold tracking-widest uppercase hover:text-white">Close Case Study</button></div></div></div>
<div id="modal-glowmint" class="fixed inset-0 z-[100] bg-brand-secondary text-white overflow-y-auto case-study-modal opacity-0 pointer-events-none"><button onclick="closeCaseStudy('glowmint')" class="fixed top-8 right-8 z-[101] text-white hover:text-accent-highlight transition-colors"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button><div class="max-w-5xl mx-auto px-4 sm:px-6 py-24"><div class="border-b border-white/10 pb-12 mb-12 cs-reveal"><span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-4 block">Case Study: 03</span><h1 class="text-4xl sm:text-6xl md:text-8xl font-serif mb-8 text-white">GlowMint Skincare</h1><div class="flex flex-wrap gap-4 sm:gap-8 text-xs sm:text-sm text-text-body font-light tracking-widest uppercase"><span>Beauty D2C</span><span>India-Wide</span><span>6 Months</span></div></div><div class="mb-16 cs-reveal"><h3 class="text-xl font-bold text-white mb-6">Financial Impact</h3><table class="metric-table"><thead><tr><th>Metric</th><th>Before</th><th>After</th><th>Impact</th></tr></thead><tbody><tr><td>CAC</td><td class="metric-bad">₹510</td><td class="metric-good">₹228</td><td>-55%</td></tr><tr><td>AOV</td><td class="metric-bad">₹799</td><td class="metric-good">₹1,140</td><td>+42%</td></tr><tr><td>Monthly Revenue</td><td class="metric-bad">4.2L</td><td class="metric-good">₹21.5L</td><td>5.1x</td></tr></tbody></table></div><div class="text-center py-12 border-t border-white/10 mt-12 cs-reveal"><button onclick="closeCaseStudy('glowmint')" class="text-brand-primary text-sm font-bold tracking-widest uppercase hover:text-white">Close Case Study</button></div></div></div>
<div id="modal-skyline" class="fixed inset-0 z-[100] bg-brand-secondary text-white overflow-y-auto case-study-modal opacity-0 pointer-events-none"><button onclick="closeCaseStudy('skyline')" class="fixed top-8 right-8 z-[101] text-white hover:text-accent-highlight transition-colors"><svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button><div class="max-w-5xl mx-auto px-4 sm:px-6 py-24"><div class="border-b border-white/10 pb-12 mb-12 cs-reveal"><span class="text-brand-primary text-xs font-bold tracking-elite uppercase mb-4 block">Case Study: 04</span><h1 class="text-4xl sm:text-6xl md:text-8xl font-serif mb-8 text-white">Skyline Developers</h1><div class="flex flex-wrap gap-4 sm:gap-8 text-xs sm:text-sm text-text-body font-light tracking-widest uppercase"><span>Real Estate</span><span>Thane</span><span>7 Months</span></div></div><div class="mb-16 cs-reveal"><h3 class="text-xl font-bold text-white mb-6">Financial Impact</h3><table class="metric-table"><thead><tr><th>Metric</th><th>Before</th><th>After</th><th>Impact</th></tr></thead><tbody><tr><td>Cost Per Lead</td><td class="metric-bad">₹2,200</td><td class="metric-good">₹860</td><td>-61%</td></tr><tr><td>Site Visits</td><td class="metric-bad">20/mo</td><td class="metric-good">140/mo</td><td>7x</td></tr><tr><td>Revenue Closed</td><td class="metric-bad">-</td><td class="metric-good">₹42.3 Cr</td><td>Target Met</td></tr></tbody></table></div><div class="text-center py-12 border-t border-white/10 mt-12 cs-reveal"><button onclick="closeCaseStudy('skyline')" class="text-brand-primary text-sm font-bold tracking-widest uppercase hover:text-white">Close Case Study</button></div></div></div>
<script>
document.addEventListener("DOMContentLoaded", (event) => {
gsap.registerPlugin(ScrollTrigger);
window.addEventListener("load", () => { ScrollTrigger.refresh(); });
window.addEventListener("pageshow", (event) => { if (event.persisted) { ScrollTrigger.refresh(); gsap.to("body", { opacity: 1, duration: 0.2 }); } });
const tl = gsap.timeline();
tl.fromTo(".reveal-text", { y: 60, autoAlpha: 0 }, { y: 0, autoAlpha: 1, duration: 1.2, stagger: 0.15, ease: "power3.out" });
// NEW: TRUST STRIP REVEAL
gsap.from(".logo-strip-reveal", {
scrollTrigger: { trigger: "#hero", start: "top top" },
y: 20, opacity: 0, duration: 1.5, delay: 1, ease: "power2.out"
});
// NEW: SECTION TITLE REVEALS
const sectionTitles = document.querySelectorAll(".section-title-reveal");
sectionTitles.forEach(section => {
gsap.from(section, {
scrollTrigger: { trigger: section, start: "top 80%", toggleActions: "play none none reverse" },
y: 40, opacity: 0, duration: 1, ease: "power2.out"
});
});
// NEW: PARAGRAPH REVEALS
const pReveals = document.querySelectorAll(".text-reveal-p");
pReveals.forEach(p => {
gsap.from(p, {
scrollTrigger: { trigger: p, start: "top 85%", toggleActions: "play none none reverse" },
y: 20, opacity: 0, duration: 1, ease: "power2.out"
});
});
// NEW: CS REVEALS (Generic)
const csReveals = document.querySelectorAll(".cs-reveal");
csReveals.forEach(el => {
gsap.from(el, {
scrollTrigger: { trigger: el, start: "top 85%", toggleActions: "play none none reverse" },
y: 30, opacity: 0, duration: 0.8, ease: "power2.out"
});
});
gsap.from("#stats-container", { scrollTrigger: { trigger: "#stats-container", start: "top 85%", toggleActions: "play none none reverse" }, y: 50, opacity: 0, duration: 1, ease: "power2.out" });
const counters = document.querySelectorAll('.stat-counter');
counters.forEach(counter => {
const target = parseFloat(counter.getAttribute('data-target'));
const isFloat = target % 1 !== 0;
gsap.to(counter, {
innerHTML: target,
duration: 2.5,
ease: "power2.out",
scrollTrigger: {trigger: "#stats-container", start: "top 85%", once: true },
snap: {innerHTML: isFloat ? 0.1 : 1},
onUpdate: function() { this.targets()[0].innerHTML = isFloat ? parseFloat(this.targets()[0].innerHTML).toFixed(1) : Math.round(this.targets()[0].innerHTML); }
});
});
// Standard Interactions
const days = document.querySelectorAll('.calendar-day:not(.disabled)');
const timeSlots = document.querySelectorAll('.time-slot');
days.forEach(day => { day.addEventListener('click', function() { days.forEach(d => d.classList.remove('selected')); this.classList.add('selected'); }); });
timeSlots.forEach(slot => { slot.addEventListener('click', function() { timeSlots.forEach(s => s.classList.remove('selected')); this.classList.add('selected'); }); });
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
document.querySelectorAll('.case-study-modal.open').forEach(modal => { closeModal(modal); });
toggleMobileMenu(false);
}
});
});
// VIEW SWITCHER (Main vs Calculator vs Methodology vs Services)
function switchView(viewName) {
const mainContent = document.getElementById('main-site-view');
const calculatorView = document.getElementById('calculator-view');
const methodologyView = document.getElementById('methodology-view');
const serviceAudit = document.getElementById('view-audit');
const serviceCreative = document.getElementById('view-creative');
const serviceRetention = document.getElementById('view-retention');
// Reset all
mainContent.style.display = 'none';
calculatorView.style.display = 'none';
methodologyView.style.display = 'none';
serviceAudit.style.display = 'none';
serviceCreative.style.display = 'none';
serviceRetention.style.display = 'none';
window.scrollTo(0, 0);
if (viewName === 'calculator') {
calculatorView.style.display = 'flex';
setTimeout(initChart, 100);
} else if (viewName === 'methodology') {
methodologyView.style.display = 'flex';
setTimeout(() => ScrollTrigger.refresh(), 200);
} else if (viewName === 'view-audit') {
serviceAudit.style.display = 'flex';
setTimeout(() => ScrollTrigger.refresh(), 200);
} else if (viewName === 'view-creative') {
serviceCreative.style.display = 'flex';
setTimeout(() => ScrollTrigger.refresh(), 200);
} else if (viewName === 'view-retention') {
serviceRetention.style.display = 'flex';
setTimeout(() => ScrollTrigger.refresh(), 200);
} else {
mainContent.style.display = 'block';
ScrollTrigger.refresh();
}
}
// Chart.js instance logic for Calculator
let growthChart = null;
function initChart() {
const ctx = document.getElementById('growthChart').getContext('2d');
if(growthChart) { growthChart.destroy(); }
growthChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['Month 1', 'Month 2', 'Month 3', 'Month 4', 'Month 5', 'Month 6'],
datasets: [
{
label: 'Current Trajectory',
data: [100, 110, 120, 130, 140, 150], // Dummy start data
borderColor: '#F2F4F7',
borderWidth: 2,
borderDash: [5, 5],
tension: 0.4
},
{
label: 'Whale Protocol',
data: [100, 140, 210, 320, 480, 720], // Dummy start data
borderColor: '#C7E600',
backgroundColor: 'rgba(199, 230, 0, 0.1)',
borderWidth: 3,
tension: 0.4,
fill: true,
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: { legend: { labels: { color: '#fff' } } },
scales: {
y: { grid: { color: 'rgba(255,255,255,0.05)' }, ticks: { color: '#F2F4F7' } },
x: { grid: { display: false }, ticks: { color: '#F2F4F7'}}
}
}
});
}
// Trigger calculation initially to populate chart if inputs exist
// calculateMetrics();
// Calculator Logic (Advanced)
function calculateMetrics() {
// Get Inputs
const aov = parseFloat(document.getElementById('aov').value);
const cogs = parseFloat(document.getElementById('cogs').value);
const spend = parseFloat(document.getElementById('spend').value);
const revenue = parseFloat(document.getElementById('revenue').value);
const customers = parseFloat(document.getElementById('customers').value);
const frequency = parseFloat(document.getElementById('frequency').value) || 1;
if (!aov || !spend || !revenue || !customers) {
// Do not alert on load, only on submit if empty
return;
}
// Calculations
const margin = aov - cogs;
const marginPercent = margin / aov;
const beROAS = 1 / marginPercent;
const mer = revenue / spend;
const cac = spend / customers;
const ltv = (aov * frequency);
const ltvCacRatio = ltv / cac;
// Whale Score Algorithm
// Weighted scoring based on Efficiency (MER) vs Sustainability (LTV:CAC)
let whaleScore = (ltvCacRatio * 1.5) + (mer * 0.5);
if (mer < beROAS) whaleScore -= 2.5; // Heavy penalty for losing money front-end
// Styling & Logic for Diagnosis
let diagnosis = "";
let action = "";
let scoreLabel = "";
let scoreColor = "";
let borderColor = "";
if (whaleScore >= 5) {
scoreLabel = "ELITE (SCALABLE)";
scoreColor = "#1F66CC"; // Brand Blue
borderColor = "#1F66CC";
diagnosis = "Your unit economics are exceptional. You are likely under-spending. Your arbitrage gap is wide open, meaning every day you don't scale is lost revenue.";
action = "Aggressive Scale. Increase budget by 20% every 48 hours monitoring MER stability.";
} else if (whaleScore >= 2.5) {
scoreLabel = "HEALTHY (OPTIMIZE)";
scoreColor = "#00D2D4"; // Aqua
borderColor = "#00D2D4";
diagnosis = "Your foundation is solid, but not maximized. You are breaking even, but likely leaving profit on the table due to creative fatigue or unoptimized LTV funnels.";
action = "Creative Diversification + LTV Engineering. Focus on raising AOV to improve margins.";
} else {
scoreLabel = "CRITICAL (RISK)";
scoreColor = "#FF5252"; // Coral Red
borderColor = "#FF5252";
diagnosis = "You are burning capital efficiently. Scaling now would be dangerous. Your Break-Even ROAS is too close to your actual MER, or your CAC is too high relative to LTV.";
action = "Financial Triage. Pause scaling. Focus entirely on CRO and Offer Engineering.";
}
// Render UI
document.getElementById('beRoasDisplay').innerText = beROAS.toFixed(2) + "x";
document.getElementById('merDisplay').innerText = mer.toFixed(2);
document.getElementById('cacDisplay').innerText = "$" + Math.round(cac);
document.getElementById('ltvDisplay').innerText = "$" + Math.round(ltv);
const scoreEl = document.getElementById('scoreDisplay');
scoreEl.innerText = whaleScore.toFixed(1);
scoreEl.style.color = scoreColor;
const labelEl = document.getElementById('scoreLabel');
labelEl.innerText = scoreLabel;
labelEl.style.color = scoreColor;
document.getElementById('score-card').style.borderTopColor = borderColor;
document.getElementById('diagnosisText').innerText = diagnosis;
document.getElementById('nextActionText').innerText = action;
// Hide Placeholder, Show Results
document.getElementById('dashboard-placeholder').style.display = 'none';
const results = document.getElementById('resultsPanel');
results.classList.remove('opacity-0', 'translate-y-4');
// Update Chart Data dynamically if chart exists
if(growthChart) {
const baseline = revenue;
const growth = revenue * 1.5; // Simple projection for demo
// Create projection curve
growthChart.data.datasets[0].data = [baseline, baseline*1.05, baseline*1.1, baseline*1.15, baseline*1.2, baseline*1.25];
growthChart.data.datasets[1].data = [baseline, growth*0.8, growth*0.9, growth, growth*1.1, growth*1.2];
growthChart.update();
}
}
function toggleMobileMenu(forceState) {
const menu = document.getElementById('mobile-menu');
if (forceState === false) { menu.classList.remove('open'); }
else { menu.classList.toggle('open'); }
}
function openCaseStudy(id) { openModal(document.getElementById('modal-' + id)); }
function closeCaseStudy(id) { closeModal(document.getElementById('modal-' + id)); }
function openBooking() { openModal(document.getElementById('modal-booking')); }
function closeBooking() { closeModal(document.getElementById('modal-booking')); }
function openModal(modalId) {
const modal = typeof modalId === 'string' ? document.getElementById(modalId) : modalId;
if (modal) {
modal.classList.remove('pointer-events-none');
modal.classList.add('open');
gsap.to(modal, { opacity: 1, duration: 0.5 });
// Specifically animate the form container inside the PDF modal if it exists
if(modal.id === 'modal-pdf') {
const formCard = modal.querySelector('.bg-brand-card');
gsap.fromTo(formCard,
{y: 50, opacity: 0},
{y: 0, opacity: 1, duration: 0.6, delay: 0.1, ease: "power2.out"}
);
} else {
// Standard reveal for other modals
const elementsToReveal = modal.querySelectorAll(".cs-reveal");
if(elementsToReveal.length) {
gsap.fromTo(elementsToReveal, { y: 50, opacity: 0 }, { y: 0, opacity: 1, duration: 0.8, stagger: 0.1, delay: 0.3, ease: "power2.out" });
document.body.style.overflow = 'hidden';
}
}
}
}
function closeModal(modal) {
if (modal) {
gsap.to(modal, { opacity: 0, duration: 0.5, onComplete: () => {
modal.classList.remove('open');
modal.classList.add('pointer-events-none');
document.body.style.overflow = 'auto';
}});
}
}
function downloadPDF(form) {
const button = form.querySelector('button');
const originalContent = button.innerHTML;
// Simulate loading state
button.disabled = true;
button.innerHTML = '<span class="animate-pulse">AUTHENTICATING...</span>';
// Simulate network delay and download
setTimeout(() => {
// Create a dummy link to trigger download
const link = document.createElement('a');
// Assumption: The PDF file is named exactly as uploaded and resides in the root
link.href = '#';
// link.download = 'The Whale Protocol Master Book.pdf'; // In a real env
// document.body.appendChild(link);
// link.click();
// document.body.removeChild(link);
// Success State
button.innerHTML = '<span class="text-accent-cta">ACCESS GRANTED</span>';
// Close modal after a moment
setTimeout(() => {
closeModal(document.getElementById('modal-pdf'));
// Reset form
setTimeout(() => {
form.reset();
button.disabled = false;
button.innerHTML = originalContent;
}, 500);
}, 1500);
}, 1500);
}
</script>
</body>
</html>