diff --git a/README.md b/README.md
index f1a7e32..f9c0664 100644
--- a/README.md
+++ b/README.md
@@ -162,6 +162,7 @@ It's meant for people who over-plan under pressure — who generate more meaning
- [docs/connectors/notion.md](docs/connectors/notion.md) — optional Notion two-way sync, step by step
- [schemas/README.md](schemas/README.md) — the data contract, file by file
- [DEMO_DATA.md](DEMO_DATA.md) — the placeholder convention
+- [docs/INHERITANCE.md](docs/INHERITANCE.md) — how this template inherits functionality (never content) from its private upstream
- [docs/ROADMAP.md](docs/ROADMAP.md) — built now vs. planned
## Contributing
diff --git a/dashboard/assets/shared.css b/dashboard/assets/shared.css
index 89fb3bc..79b0430 100644
--- a/dashboard/assets/shared.css
+++ b/dashboard/assets/shared.css
@@ -44,6 +44,10 @@
--r-lg:18px; /* hero cards */
--r-card:16px; /* cards, dock, search box */
--r-btn:10px; /* buttons, inputs, small blocks */
+
+ /* Spacing scale — Temple Courtyard, Lamps Lit. Use these, not raw px margins. */
+ --sp-1:6px; --sp-2:10px; --sp-3:16px; --sp-4:24px; --sp-5:36px;
+ --section-gap:var(--sp-5);
}
/* Evening: the same warm-lit world after dark — deep espresso + brightened terracotta, never a cold invert */
:root[data-theme="dark"]{
diff --git a/dashboard/index.html b/dashboard/index.html
index 50857ee..8085ac8 100644
--- a/dashboard/index.html
+++ b/dashboard/index.html
@@ -28,7 +28,7 @@
opacity:.82;font-weight:700;margin-bottom:6px;position:relative}
/* Section rhythm + headers */
- .section{scroll-margin-top:72px;margin:30px 0 0}
+ .section{scroll-margin-top:72px;margin:var(--section-gap) 0 0}
.section-head{display:flex;align-items:baseline;gap:10px;margin:0 0 12px;padding-bottom:6px;
border-bottom:1px dashed var(--line);flex-wrap:wrap}
.section-head h2{margin:0;font-size:var(--fs-h2);letter-spacing:.2px;display:flex;align-items:center;gap:8px}
@@ -42,7 +42,7 @@
.mission{text-align:center;color:var(--muted);font-size:var(--fs-body);margin:4px 0 22px}
/* Hero: the one thing */
- .hero-one{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);
+ .hero-one{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);
border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow);max-width:900px;margin:0 auto 16px}
.hero-one .one-tag{font-size:var(--fs-micro);font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent)}
.hero-one .one-do{font-size:var(--fs-lead);font-weight:700;margin:6px 0 4px;line-height:1.35}
@@ -75,17 +75,14 @@
.links a{color:var(--accent2);text-decoration:none;font-size:var(--fs-body)}
.links a:hover{text-decoration:underline}
- /* Calming reframe strip (saffron/gold, gentle — never an alarm) */
- .reframe{background:var(--reframe-bg);border-left:4px solid var(--gold);padding:12px 16px;border-radius:var(--r-btn);
- font-family:var(--serif);font-style:italic;color:var(--ink);opacity:.92;font-size:var(--fs-body);margin:0 auto 18px;max-width:900px}
-
/* Collapsible maintenance / after-Saturday zone */
details.zone{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);
margin:0 0 16px;overflow:hidden}
details.zone > summary{list-style:none;cursor:pointer;padding:16px 20px;display:flex;align-items:center;gap:12px;
font-size:var(--fs-h3);font-weight:700;user-select:none}
details.zone > summary::-webkit-details-marker{display:none}
- details.zone > summary .chev{margin-left:auto;color:var(--muted);font-size:var(--fs-sub);transition:transform .2s;flex:none}
+ details.zone > summary .chev{margin-left:auto;color:var(--muted);font-size:var(--fs-sub);flex:none}
+ html.motion-ok details.zone > summary .chev{transition:transform .2s}
details.zone[open] > summary .chev{transform:rotate(90deg)}
details.zone > summary:hover{background:var(--rule-bg)}
details.zone > summary .zsub{font-weight:500;color:var(--muted);font-size:var(--fs-meta)}
@@ -258,18 +255,12 @@
:root[data-daypart="night"]{--ambient-a:rgba(31,111,92,.08);--ambient-b:rgba(74,55,40,.09)}
/* Reveal-on-scroll — hidden state applied ONLY when JS adds .js-reveal-ready, and only under motion-ok,
- so content is always visible with JS off or Reduce Motion on. One-way (observer unobserves after reveal). */
- html.motion-ok [data-reveal].js-reveal-ready{opacity:0;transform:translateY(14px);
+ so content is always visible with JS off or Reduce Motion on. One-way (observer unobserves after reveal).
+ Lamps-lit pass: a restrained 8px lift, not a 14px swoop — the light arrives, it doesn't announce itself. */
+ html.motion-ok [data-reveal].js-reveal-ready{opacity:0;transform:translateY(8px);
transition:opacity var(--dur-3) var(--ease),transform var(--dur-3) var(--ease)}
html.motion-ok [data-reveal].js-reveal-ready.in{opacity:1;transform:none}
- /* Section-active gold underline (driven by the existing IntersectionObserver) */
- .section-head{position:relative}
- .section-head::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;
- background:linear-gradient(90deg,var(--gold),transparent);transform:scaleX(0);transform-origin:left;
- transition:transform var(--dur-2) var(--ease)}
- .section-active .section-head::after{transform:scaleX(1)}
-
/* Diya micro-interactions — one-shot gold glow on completion; press feedback on controls */
@keyframes diyaGlow{0%{box-shadow:0 0 0 0 rgba(201,162,75,.55)}100%{box-shadow:0 0 0 12px rgba(201,162,75,0)}}
html.motion-ok .diya-glow{animation:diyaGlow .5s ease-out;border-radius:var(--r-btn)}
@@ -352,7 +343,7 @@
-
+
+
Hey, Alex
@@ -381,9 +373,10 @@
🚀 Operation Launch Week
+
-
Finished, not perfect. One block a day beats a weekend binge.
+
🎯 The one thing right now
Do today's single build block — one feature or one fix — and ship it.
@@ -393,42 +386,13 @@
🚀 Operation Launch Week
⏱️ This month's rule: every build day, one honest block beats a perfect plan. Did I ship one real thing today? If yes, that day counts. Always-OK: Sam · sleep · food · health · the day job.
-
Think once → Build → Measure → Improve. Shipped things are evidence. Log them, don't just plan them.
-
0% of tracked items done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 🔄 Sync
- Local only
- Open Notion
-
-
-
- Edits to Tasks/Habits below queue an automatic sync to Notion · see setup guide.
-
+
🗓️ This week — the work that moves the mission
Tasks, habits and the day-by-day plan. Start at the top; one block at a time.
@@ -437,9 +401,10 @@
🗓️ This week — the work that moves the mission
-
✏️ Tasks live · syncs to Notion
+
Tasks live · syncs to Notion
Add, edit, re-prioritize below. Every change queues an automatic sync to your Notion Tasks DB.
+
@@ -454,21 +419,28 @@
✏️ Tasks live · syncs to Notion
-
+
-
🔁 Habits live · syncs to Notion
+
Habits live · syncs to Notion
This week's matrix. ★ = keystone habit. Click a day letter to toggle it.
-
+
-
-
-
🗓️ The Week — Mon → Sat
+
+
+
+ 🗓️ The 4-week arc — one theme per week
+ Tick as you go (saves on this device)
+ ▶
+
+
+
+
The Week — Mon → Sat
One theme per day. Tick as you go (saves on this device).
@@ -513,6 +485,8 @@
Week 4 · Launch + first cohort
+
+
@@ -527,7 +501,7 @@
🔁 Daily basics — keep the base solid
-
🔁 Daily Non-Negotiables protect these
+
Daily Non-Negotiables protect these
Reset these each morning
@@ -544,7 +518,7 @@
🔁 Daily Non-Negotiables protect these
-
💪 Health Protocol ongoing
+
Health Protocol ongoing
Build muscle, move daily, sleep right — layer in one at a time
@@ -570,9 +544,26 @@
🪞 Reflect — mirror & daily review
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
🪞 Personality Mirror
+
Personality Mirror
A calm nudge — a strength to lean on, a pattern to watch, an anchor to remember.
remember
…
@@ -584,8 +575,9 @@
🪞 Personality Mirror
+
-
🌙 Daily Review today
+
Daily Review today
@@ -645,7 +637,7 @@
Tomorrow's one thing
-
+
@@ -661,7 +653,7 @@
💰 Finance & Investments
-
📈 Portfolio Broker
+
Portfolio Broker
Loading…
@@ -670,20 +662,20 @@
📈 Portfolio Broker
-
🏦 Net Worth
+
Net Worth
Assets − liabilities. Update at the monthly review.
-
🧾 Monthly Budget
+
Monthly Budget
Give every dollar a job.
-
Connect live data: see the broker connector guide. Capital-protection first — this view is for awareness, not trading impulses.
+
Connect live data: see the broker connector guide. Capital-protection first — this view is for awareness, not trading impulses.
@@ -704,39 +696,39 @@
🌱 After the gate — parked, not forgotten
-
🌱 Side projects maintenance
+
Side projects maintenance
Alive, not abandoned — one tiny artifact each
-
-
-
-
+
+
+
+
-
🚀 Ventures after launch
+
Ventures after launch
Weekend Pottery build-out + a learning goal
-
-
-
-
-
+
+
+
+
+
-
❤️ Family & Sam after launch
+
Family & Sam after launch
Concrete plans, not vague "spend time"
-
-
-
-
-
+
+
+
+
+
@@ -780,7 +772,7 @@
🌅 Life architecture — the year & the 5-year picture
-
🌅 One-Year Vision Jul '26 → Jul '27
+
One-Year Vision Jul '26 → Jul '27
60–75% execution of this = a massive portion of the life goals already alive.