/* ============================================================ IMMERSIVE SCENE · Living-organism mainframe Penthouse silhouette · sunset window · animated fire · periodic aircraft · time-of-day cycling · clickable tentacles ============================================================ */ :root{ --sky-1: #0d0820; --sky-2: #1f0d35; --sky-3: #2d1855; --skyline: #050309; --tod-tint: rgba(0,0,0,0); /* swapped by JS for time-of-day */ } body.scene-ready #main::before{display:none} .immersive-scene{ position:relative; width:100%; min-height:calc(100vh - 64px - 50px); overflow:hidden; isolation:isolate; background: linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 30%, var(--sky-3) 60%, #050309 100%); } .immersive-scene::before{ /* Time-of-day color overlay (live-tinted by JS) */ content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background: var(--tod-tint); transition: background 8s ease; mix-blend-mode: overlay; } /* === SKY · sunset gradient with shifting hue === */ .scene-sky{ position:absolute; left:0; right:0; top:0; height:65%; z-index:0; background: linear-gradient(180deg, var(--sky-1) 0%, #2a1340 25%, #5a2860 45%, #c84a5a 65%, #f5854a 80%, #fdc060 92%, #fce5a8 100%); transition: filter 8s ease, opacity 8s ease; } .scene-sky::after{ /* Stars layer over sky */ content:''; position:absolute; inset:0; background-image: radial-gradient(1px 1px at 8% 12%, white 50%, transparent 51%), radial-gradient(1px 1px at 22% 28%, white 50%, transparent 51%), radial-gradient(1.2px 1.2px at 38% 8%, white 50%, transparent 51%), radial-gradient(1px 1px at 56% 18%, white 50%, transparent 51%), radial-gradient(1.2px 1.2px at 72% 32%, white 50%, transparent 51%), radial-gradient(1px 1px at 88% 14%, white 50%, transparent 51%); opacity: 0.4; transition: opacity 8s ease; } /* === CITY SKYLINE · SVG silhouette anchored to bottom of sky === */ .scene-skyline{ position:absolute; left:0; right:0; bottom:35%; height:30%; z-index:1; pointer-events:none; } .scene-skyline svg{width:100%; height:100%; display:block} /* === WINDOW FRAME (foreground floor-to-ceiling glass mullions) === */ .scene-window-frame{ position:absolute; inset:0; z-index:3; pointer-events:none; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 8%, transparent 92%, rgba(0,0,0,.6) 100%), linear-gradient(90deg, rgba(0,0,0,.7) 0%, transparent 4%, transparent 96%, rgba(0,0,0,.7) 100%); } .scene-window-frame::before{ /* vertical mullions */ content:''; position:absolute; inset:0; background-image: linear-gradient(90deg, transparent 24%, rgba(0,0,0,.45) 24.3%, rgba(0,0,0,.45) 24.7%, transparent 25%, transparent 49.5%, rgba(0,0,0,.45) 49.8%, rgba(0,0,0,.45) 50.2%, transparent 50.5%, transparent 74%, rgba(0,0,0,.45) 74.3%, rgba(0,0,0,.45) 74.7%, transparent 75%); } .scene-window-frame::after{ /* horizontal mullion */ content:''; position:absolute; left:0; right:0; top:55%; height:1px; background:rgba(0,0,0,.55); } /* === ROOM INTERIOR · bottom 35% is the penthouse floor + sofa silhouettes === */ .scene-room{ position:absolute; left:0; right:0; bottom:0; height:35%; z-index:2; background: linear-gradient(180deg, transparent 0%, rgba(20,15,30,.4) 18%, rgba(20,15,30,.85) 100%); pointer-events:none; } .scene-floor{ position:absolute; left:0; right:0; bottom:0; height:60%; background: linear-gradient(180deg, rgba(40,28,20,.4) 0%, rgba(80,55,40,.65) 100%); transform: perspective(800px) rotateX(45deg); transform-origin: bottom; } .scene-floor::after{ content:''; position:absolute; inset:0; background-image: radial-gradient(ellipse at center 120%, rgba(255,180,100,.18) 0%, transparent 60%); } /* === FIREPLACE · animated CSS fire === */ .scene-fireplace{ position:absolute; left:3%; bottom:5%; width:14%; height:18%; z-index:4; background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 60px rgba(255,140,40,.4), 0 0 30px rgba(255,90,30,.3) inset; overflow:hidden; } .scene-fireplace::before{ content:''; position:absolute; left:0; right:0; bottom:0; height:55%; background: radial-gradient(ellipse at 20% 100%, #ff6020 0%, transparent 50%), radial-gradient(ellipse at 50% 110%, #ffaa30 0%, transparent 60%), radial-gradient(ellipse at 80% 100%, #ff7028 0%, transparent 50%); filter: blur(4px); animation: fire-flicker 0.13s steps(2) infinite, fire-shift 3s ease-in-out infinite; } .scene-fireplace::after{ content:''; position:absolute; left:10%; right:10%; bottom:0; height:35%; background: radial-gradient(ellipse at 30% 100%, #ffe0a0 0%, transparent 70%), radial-gradient(ellipse at 70% 100%, #fff5cc 0%, transparent 60%); filter: blur(6px); opacity:.85; animation: fire-flicker 0.09s steps(2) infinite reverse; } @keyframes fire-flicker{ 0%{transform:translateY(0) scaleY(1); opacity:.92} 100%{transform:translateY(-2px) scaleY(1.04); opacity:1} } @keyframes fire-shift{ 0%,100%{transform:translateX(0)} 50%{transform:translateX(3px)} } .scene-fire-glow{ /* warm bounce light across the floor */ position:absolute; left:0; right:0; bottom:0; height:25%; z-index:3; pointer-events:none; background: radial-gradient(ellipse at 10% 100%, rgba(255,140,40,.3) 0%, transparent 50%); animation: glow-flicker 4s ease-in-out infinite; } @keyframes glow-flicker{ 0%,100%{opacity:.85} 50%{opacity:1} } /* === SOFA / FURNITURE silhouettes === */ .scene-furniture{ position:absolute; left:0; right:0; bottom:0; height:25%; z-index:5; pointer-events:none; } .scene-sofa{ position:absolute; left:6%; right:42%; bottom:0; height:55%; background: linear-gradient(180deg, rgba(180,160,140,.85) 0%, rgba(120,100,85,.95) 100%); border-radius: 80px 80px 8px 8px; box-shadow: 0 -10px 30px rgba(255,140,40,.15), inset 0 8px 16px rgba(0,0,0,.3); } .scene-coffee-table{ position:absolute; left:30%; right:50%; bottom:5%; height:30%; background: radial-gradient(ellipse at center 30%, #2a1f18 0%, #0a0604 100%); border-radius: 50%; box-shadow: 0 8px 24px rgba(0,0,0,.6), inset 0 -4px 12px rgba(255,180,100,.15); } .scene-coffee-table::before{ content:''; position:absolute; left:42%; right:42%; top:8%; height:80%; background: radial-gradient(ellipse at center, rgba(255,240,200,.6) 0%, transparent 70%); filter: blur(2px); animation: candle-flicker 1.5s ease-in-out infinite; } @keyframes candle-flicker{ 0%,100%{opacity:.7} 50%{opacity:1} } .scene-bar{ position:absolute; right:0; bottom:0; width:18%; height:42%; background: linear-gradient(180deg, rgba(60,45,38,.4) 0%, rgba(30,22,18,.95) 100%); border-left: 1px solid rgba(255,180,100,.15); } .scene-bar::before{ content:''; position:absolute; left:0; top:30%; right:0; bottom:0; background: linear-gradient(180deg, rgba(255,200,100,.2) 0%, transparent 100%); } /* === AIRCRAFT (planes + helis) animate across sky === */ .scene-aircraft-layer{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; } .aircraft{ position:absolute; opacity:0; filter: drop-shadow(0 0 4px rgba(0,0,0,.5)); } .aircraft.flying{ animation: fly-across var(--fly-duration, 18s) linear forwards } @keyframes fly-across{ 0%{transform: translateX(-10vw); opacity:0} 8%{opacity:.7} 50%{opacity:.9} 92%{opacity:.7} 100%{transform: translateX(110vw); opacity:0} } /* === ORB CENTER · holographic energy core === */ .scene-orb-mount{ position:absolute; left:50%; top:42%; transform: translate(-50%, -50%); width: 380px; height: 380px; z-index:6; pointer-events: none; } .scene-orb-mount canvas{ width:100%; height:100% } /* === TENTACLES · SVG energy streams emanating from orb to tabs === */ .scene-tentacles{ position:absolute; inset:0; z-index:7; pointer-events:none; } .scene-tentacles svg{width:100%; height:100%} .tentacle{ fill:none; stroke-width:2.5; stroke-linecap:round; pointer-events:stroke; cursor:pointer; filter: drop-shadow(0 0 6px currentColor) drop-shadow(0 0 12px currentColor); transition: stroke-width .25s ease, opacity .25s ease; stroke-dasharray: 8 12; animation: tentacle-flow 4s linear infinite; } @keyframes tentacle-flow{ 0%{stroke-dashoffset: 0} 100%{stroke-dashoffset: -200} } .tentacle:hover{ stroke-width:5; opacity:1 !important } .tentacle-label{ position:absolute; transform: translate(-50%,-50%); font-size:11px; letter-spacing:3px; text-transform:uppercase; color: var(--ink); pointer-events: auto; cursor:pointer; padding: 8px 14px; background: rgba(10,16,28,.6); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.15); border-radius: 100px; transition: all .25s ease; z-index:8; text-shadow: 0 0 12px currentColor; white-space: nowrap; } .tentacle-label:hover{ background: rgba(20,30,50,.85); transform: translate(-50%,-50%) scale(1.08); border-color: currentColor; box-shadow: 0 0 20px currentColor; } /* === TEXT OVERLAYS === */ .scene-overlay-text{ position:absolute; z-index:9; pointer-events:none; font-family: -apple-system, system-ui, sans-serif; } .scene-title{ left: 5%; top: 30%; } .scene-title h1{ font-size: 38px; font-weight: 200; letter-spacing: 8px; color: white; text-shadow: 0 0 30px rgba(255,255,255,.5), 0 0 60px rgba(233,75,255,.3); margin-bottom: 6px; } .scene-title h2{ font-size: 18px; font-weight: 300; letter-spacing: 4px; background: linear-gradient(90deg, var(--teal), var(--magenta)); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom: 18px; } .scene-title .divider{ width:60px; height:2px; background:var(--teal); margin-bottom:18px; box-shadow:0 0 12px var(--teal) } .scene-title p{ font-size: 11px; letter-spacing:3px; text-transform:uppercase; color: rgba(230,241,255,.85); line-height:1.8; } .scene-tagline{ left: 50%; bottom: 8%; transform: translateX(-50%); text-align: center; z-index:9; } .scene-tagline .small{ font-size: 12px; letter-spacing: 6px; color: rgba(230,241,255,.85); text-transform: uppercase; margin-bottom: 6px; text-shadow: 0 0 20px rgba(233,75,255,.5); } .scene-tagline .big{ font-size: 22px; letter-spacing: 12px; font-weight: 300; background: linear-gradient(90deg, var(--magenta), var(--teal)); -webkit-background-clip:text; background-clip:text; color:transparent; } /* === RIGHT-SIDE CAPABILITIES MENU (VOICE / INSIGHT / ACTION / CARE) === */ .scene-capabilities{ position:absolute; right: 4%; top: 30%; z-index:9; display:flex; flex-direction:column; gap:18px; } .cap-item{ display:flex; align-items:flex-start; gap:14px; padding: 12px 16px; background: rgba(10,16,28,.45); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; min-width: 200px; transition: all .3s ease; cursor: pointer; } .cap-item:hover{ background: rgba(20,30,50,.7); transform: translateX(-4px); border-color: var(--teal); box-shadow: 0 0 24px rgba(61,221,212,.2); } .cap-item .icon{ width:32px; height:32px; flex-shrink:0; border: 1.5px solid currentColor; border-radius: 50%; display:flex; align-items:center; justify-content:center; color: var(--teal); box-shadow: 0 0 12px currentColor inset; } .cap-item:nth-child(2) .icon{ color: var(--gold) } .cap-item:nth-child(3) .icon{ color: var(--magenta) } .cap-item:nth-child(4) .icon{ color: #FF6B81 } .cap-item .content h4{ font-size: 12px; letter-spacing: 4px; text-transform:uppercase; color: white; margin-bottom: 4px; } .cap-item .content p{ font-size: 11px; letter-spacing: 2px; color: rgba(230,241,255,.7); text-transform: uppercase; } /* === KPI cards float as glass panels at top === */ .scene-kpi-row{ position:absolute; left:50%; top: 4%; transform:translateX(-50%); z-index: 9; display:flex; gap:12px; flex-wrap:wrap; justify-content:center; width: 90%; max-width: 1100px; } .scene-kpi-row .card{ flex:1 1 160px; min-width:140px; max-width: 200px; background: rgba(10,16,28,.55) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.1) !important; padding: 12px 14px !important; } .scene-kpi-row .card h3{ font-size: 9px !important; letter-spacing: 2px !important } .scene-kpi-row .card .big{ font-size: 22px !important } .scene-kpi-row .card .sub{ font-size: 9px !important } /* On smaller screens make scene scrollable */ @media (max-width: 900px){ .scene-orb-mount{ width:240px; height:240px; top:38% } .scene-title{ left:4%; top:14%; max-width:60%} .scene-title h1{font-size:24px; letter-spacing:5px} .scene-capabilities{ right:3%; top:14%; gap:8px } .cap-item{min-width:140px; padding:8px 10px} .tentacle-label{font-size:9px; padding:5px 8px} }
BLKSTR
SAMANTHA
Forever. Always.
Incorrect
SAMANTHA
ONLINE

Total Contacts

Full HubSpot pool

Hot Leads

WARM/HOT/LAVA · awaits Iris

Open Deals

HubSpot pipeline

Booking Ready

Closing call queue

Sequences Live

Apollo enrolled

SAMANTHA

FOREVER. ALWAYS.

Your AI Companion.
Your World. Simplified.

Voice

I hear you

Insight

I understand

Action

I get things done

Care

I'm always here

With you. Every moment.
FOREVER

Morning Briefing — Samantha

No morning briefing yet today. The scheduler writes it at 6:30 AM each weekday.
ATLAS
PAUSED
Financial Strategy outreach. MCA / SBA / RE / ABL via Apollo. Every 30 min, 7am–8pm M–F.
Sent Today
Open Rate
Reply Rate
Last Run
ECHO
PAUSED
AI Back Office outreach. :15 and :45 weekdays.
Sent Today
Demos Booked
Reply Rate
Last Run
IRIS
PAUSED
Reply classifier. Reads inbound replies, scores framing + psychology, writes to HubSpot.
Replies
Hot
Avg Score
Last Run
HUNTER
PAUSED
Lead Enrichment + Recovery. 4:00am M–F. Targets 341 missing-email contacts + stale 23+ day prospects flagged by Iris. Free-tier cascade: web search → Apollo single-record → Claude in Chrome LinkedIn. Cap: 5 enrichments per run.
Missing Email Pool
341
Enriched This Week
Recovered Stale
Last Run

Hunter Queue (from Iris stale rescue)

Loading queue from agent-logs/hunter-queue.json…
FORGE
PAUSED
Lender Sourcing + Deal Processing. Daily 6:30am. SUNDAY: lender sweep across 14 products → updates lenders-database.xlsx, queues ISO signups. WEEKDAY: pulls Booking Ready deals, runs "buyers are liars" reconciliation, builds stack (A/B/C any combination), submits via email or portal, logs everything. Forge flips deals WARM → HOT (submitted) → LAVA (offers in).
Deals in Queue
Submitted Today
Offers In
Last Run

Live Submissions Log

Reads from lenders-database.xlsx → Submissions-Log sheet on each refresh.

Stacking Doctrine

Preferred: A + A + A multi-stack (40 Tier-A MCA relationships).
Acceptable: A + B + C, A + B + B, B + B + C, A + A + B — any mix that hits target inside the merchant's deposit floor.
Lenient cutoffs: WhiteStar floor pre-filters at intake. No automatic risk-block — all flags are FYI tags. If they responded, we work hard.

Lender Bench · 110 Ceiling

MCA Standard
— / 40
SBA
— / 10
RE Equity
— / 5
Working Capital
— / 5
Equipment
— / 5
Trucking
— / 5
Factoring
— / 5
Hard Money
— / 5
Private Money
— / 5
Total Active
— / 110

Onboarding Pipeline

Discovered
Signup Sent
ISO Signed
Active
Did Not Work
Blacklisted

Tier Color Code · Active Bench

A-tier (fast, deep, generous box)
B-tier (mid, slower)
C-tier (niche / last-resort)
Blacklist
Reads ~/Desktop/whitestr-funding/lenders-database.xlsx live counts via Forge logs.
SAGE
PAUSED
10am M–F briefing. Pulls HubSpot + Apollo + Gmail, writes brutally honest CEO summary, speaks aloud.
Last Brief
Streak
0
Voice
Samantha
Status
Paused

Body Goal · Lean Bulk

Height
5'10"
Today
— lb
Target
170 lb
To Go
— lb
7-day Avg

Daily Macros · Track for Euphoria, Not Stress

Calories
0 / 2400
Protein
0 / 145g
Fat
0 / 60g
Carbs
0 / 330g

Workout Protocol

Loading today's session…

Sleep Anchor · Wake at 7:30 Hard

Current time —
Where you should be: —
Last night's sleep
Bedtime — / 7:30 wake

Today's Schedule · Live

Loading…

Apple Ecosystem Bridge

macOS Shortcuts
Calendar / Reminders / Messages bridge
OFF
Export Today as .ics
One-tap import to Apple Calendar
Family Priority Tags
P0 (immediate family), P1 (close), P2 (extended)

Commission Pipeline · Live from HubSpot

Open Pipeline
Booking Ready
Closing This Month
Last 30d Closed

Car Analysis · Make the Math Public

Real Estate · Pipeline Snapshot

RE Deals · Open
RE Booking Ready
RE Funded · 30d
RE Total Volume

Active RE Prospects

Loading from HubSpot — filtered to whitestar_lane contains "real_estate"…

Personal RE · Build Plan

Long-term wealth via equity positions and acquisitions, in parallel to capital advisory. Track personal RE goals here.
Properties Owned
0
Target by Year-End
2
Markets Tracking
FL, GA, TX
Strategy
Equity + BRRRR

Real Estate Club · Qualified Prospects

Curated cohort of prospects who fit RE financing criteria. Auto-pulled from HubSpot using the membership filter below. Cardone gate optional. Receives white-glove RE-specific outreach + private deal access.
Members (qualified)
Pending Review
Invited (this week)
0
Active Deals
Membership criteria (any 2 of these qualifies):
✓ Monthly revenue ≥ $250K
✓ FICO ≥ 680
✓ Owns commercial property OR existing portfolio
✓ Lane = real_estate OR multi_lane
✓ Capital need ≥ $500K
✓ Cardone gate (optional · $1M+ rev, 30%+ margin)
Loading qualified prospects from HubSpot…

RE Doctrine — Quick Reference

Capital advisory side: RE prospects flow through Atlas/Iris/Forge. Lane = real_estate on the deal. Forge stacks RE-equity lenders + hard money fillers.
Personal side: equity positions in cash-flow markets (FL/GA/TX). BRRRR strategy preferred. Target 2 properties year 1, scale via private money + Cardone-channel.
Decision rules: Buy only if cash-on-cash ≥ 12%. Refi within 12 months. Never buy retail without a value-add play.
RE Club: qualified prospects get white-glove sequence, private-deal early access, and waived intake fees on first transaction.

Connections

HubSpot Private App Token
Stored in localStorage on this device only
NOT SET
Apollo API Key
From Apollo Settings → Integrations → API
NOT SET
Gmail OAuth
Via Cowork connector — separate from this UI
EXTERNAL
Backend Proxy
Netlify Functions bypass CORS for live data
CHECKING…

Agent Control

Pause All
Atlas, Echo, Iris, Sage
Resume All
Only after readiness checklist passes
BLKSTR Playbook
21 Starz rollout — opens command center
Open

Security

Change PIN
4-digit code, this device only
Reset PIN to 2817
Default factory PIN
Clear All Local Data
Tokens, PIN, settings — wipes localStorage

Something tripped during boot


      

Pull-to-refresh or close and reopen.