/* ── DTLA Lease Viewer ── */ :root { --ink: #0f0f12; --ink2: #3a3a45; --muted: #888; --bg: #f7f5f0; --card: #ffffff; --accent: #c8502a; --accent2: #1e3a5f; --border: #e0dcd4; --lease: #1e6e42; --badge-bg: #e8f5ee; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'DM Sans', sans-serif; background: var(--bg); color: var(--ink); min-height: 100vh; } header { background: var(--accent2); color: #fff; padding: 20px 32px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 12px rgba(0,0,0,0.18); } header h1 { font-family: 'DM Serif Display', serif; font-size: 1.5rem; letter-spacing: -0.01em; } header span { font-size: 0.8rem; opacity: 0.7; display: block; font-weight: 300; margin-top: 2px; } .counter { background: rgba(255,255,255,0.15); border-radius: 20px; padding: 6px 14px; font-size: 0.85rem; font-weight: 500; } .controls { background: var(--card); border-bottom: 1px solid var(--border); padding: 14px 32px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; position: sticky; top: 64px; z-index: 90; } .controls label { font-size: 0.78rem; font-weight: 600; color: var(--ink2); text-transform: uppercase; letter-spacing: 0.05em; } select, input[type=range] { font-family: inherit; } select { border: 1px solid var(--border); border-radius: 6px; padding: 6px 10px; font-size: 0.85rem; background: #fff; cursor: pointer; color: var(--ink); } .range-wrap { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; } .range-val { font-weight: 600; color: var(--accent2); min-width: 70px; } input[type=range] { width: 110px; accent-color: var(--accent2); } .search-box { margin-left: auto; border: 1px solid var(--border); border-radius: 6px; padding: 6px 12px; font-size: 0.85rem; width: 180px; outline: none; color: var(--ink); background: #fff; } .search-box:focus { border-color: var(--accent2); box-shadow: 0 0 0 2px rgba(30,58,95,0.12); } .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 24px; padding: 28px 32px; max-width: 1600px; margin: 0 auto; } .card { background: var(--card); border-radius: 12px; overflow: hidden; border: 1px solid var(--border); box-shadow: 0 1px 4px rgba(0,0,0,0.06); transition: transform 0.18s, box-shadow 0.18s; display: flex; flex-direction: column; } .card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.12); } .card.hidden { display: none; } /* IMAGE GALLERY */ .gallery { position: relative; background: #1a1a2e; aspect-ratio: 4/3; overflow: hidden; } .gallery img { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 0.35s ease; } .gallery img.active { opacity: 1; } .gallery .no-img { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #555; font-size: 0.9rem; letter-spacing: 0.1em; text-transform: uppercase; background: #1a1a2e; } .nav-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,0.5); color: #fff; border: none; width: 34px; height: 34px; border-radius: 50%; font-size: 1rem; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; transition: background 0.15s; backdrop-filter: blur(4px); } .nav-btn:hover { background: rgba(0,0,0,0.75); } .nav-prev { left: 10px; } .nav-next { right: 10px; } .img-dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 5px; z-index: 10; } .dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.45); cursor: pointer; transition: background 0.15s, transform 0.15s; } .dot.active { background: #fff; transform: scale(1.3); } .img-count { position: absolute; top: 10px; right: 10px; background: rgba(0,0,0,0.5); color: #fff; font-size: 0.72rem; padding: 2px 8px; border-radius: 10px; backdrop-filter: blur(4px); z-index: 10; } /* CARD BODY */ .card-body { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; gap: 10px; } .card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; } .building-name { font-family: 'DM Serif Display', serif; font-size: 1.05rem; line-height: 1.25; color: var(--accent2); } .price { font-size: 1.15rem; font-weight: 600; color: var(--lease); white-space: nowrap; } .price span { font-size: 0.75rem; font-weight: 400; color: var(--muted); } .unit-label { font-size: 0.8rem; color: var(--muted); font-weight: 500; } .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; } .tag { background: var(--badge-bg); color: var(--lease); border-radius: 5px; padding: 3px 9px; font-size: 0.76rem; font-weight: 600; letter-spacing: 0.01em; } .tag.hood { background: #eef2f8; color: var(--accent2); } .tag.dim { background: #f5f5f0; color: #555; } .description { font-size: 0.8rem; color: var(--ink2); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .card-footer { border-top: 1px solid var(--border); padding-top: 12px; display: flex; justify-content: space-between; align-items: center; } .ppsf { font-size: 0.78rem; color: var(--muted); } .ppsf strong { color: var(--ink2); } .view-btn { background: var(--accent2); color: #fff; text-decoration: none; border-radius: 6px; padding: 6px 14px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; transition: background 0.15s; } .view-btn:hover { background: #152d4a; } .empty-state { grid-column: 1/-1; text-align: center; padding: 80px 20px; color: var(--muted); font-size: 1rem; } .empty-state big { font-family: 'DM Serif Display', serif; font-size: 2rem; display: block; margin-bottom: 8px; color: var(--ink); } @media (max-width: 600px) { header { padding: 14px 16px; } .controls { padding: 12px 16px; } .grid { padding: 16px; gap: 16px; } .search-box { width: 100%; margin-left: 0; } }
Command Center · Private
Tap for Face ID or Touch ID
Use PIN instead
KNMYA
Command Center · Mar 29 – Apr 4, 2026
Live
♨️
This Weekend: Glen Ivy Hot Springs
Complete tasks together to unlock. 75 team points needed. Both must hit 50%+ personal completion.
Team pts
📊 Live metrics
Total Tasks
📋
37
This week's list
Completed
0
0% of total
Ken
👤
0%
0 of 0
Mayra
👤
0%
0 of 0
Team Points
0
75 pts to Glen Ivy
⭐ Point tracker
🧑
Ken
0
0 tasks done
🤝
Together
0
Shared tasks completed
Unity is the multiplier
👩
Mayra
0
0 tasks done
📈 Progress over time
Cumulative completions
Task closures over the week
Ken vs Mayra vs Together
Done vs remaining per owner
✅ Task management
37
📅 Calendar — tasks + bills
March 2026
🏠 Home + Billing overview
📊 Budget forecast — Tiller-style
Monthly budget tracker
Spent vs budgeted by category
Monthly spending forecast
Actual vs budgeted by category
Bill calendar — due this month
Payment schedule visualization
🤝 Shared obligations
🧑 Ken's individual obligations
👩 Mayra's individual obligations
🛒 Home shopping list
🏡 DTLA Apartment Hunt
33 lease listings matching 2BD/2BA or 1,100+ sqft / 2+ bath · Source: downtownlaloftco.com
Any
Any
33 listings
0 units selected —
🎯 Reward system
Hot tasks = 3 pts. Together/shared = 2 pts each. Individual = 1 pt. The goal isn't to beat each other — it's to unlock experiences you both enjoy. Show up together, unlock faster.
📸 Memory feed
Drop photos, screenshots, moments. Tag and download anytime.
📷
Drop photos or tap to select
Images, screenshots, memories
📸
No memories yet. Drop the first one.
🤖 KNMYA Bot — text or voice
Type naturally or upload audio. The bot reads your full task list, billing, and points in real time. It can complete tasks, create new ones, check your week status, and answer anything about where you both stand.
🤖
KNMYA Bot
Reading your full task + billing state
Quick commands
completed [task]Mark a task done
add task: [...]Create new task
hot itemsCheck urgent tasks
points checkTeam score
full statusWeek overview
bills dueBilling check
Recent bot actions
No actions yet.
📋 Activity log — every action, timestamped
System log
📋Voice → new task
🤖Voice → bot command
🎙Record voice memo
📎Upload audio file
📞 Contact DLXco About This Unit
Anh Tran · Downtown Loft Connection · Licensed since 2008