@robbiesrobotics/alice-agents 1.5.11 → 1.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +15 -24
  2. package/bin/alice-install.mjs +5 -22
  3. package/lib/agent-registry.mjs +50 -9
  4. package/lib/alice-runtime-adapter.mjs +50 -0
  5. package/lib/doctor.mjs +1 -32
  6. package/lib/hermes-installer.mjs +33 -51
  7. package/lib/installer.mjs +134 -257
  8. package/lib/manifest.mjs +14 -9
  9. package/lib/prompter.mjs +2 -34
  10. package/lib/workspace-scaffolder.mjs +193 -17
  11. package/package.json +14 -9
  12. package/templates/agents-pro.json +147 -36
  13. package/templates/agents-starter.json +207 -7
  14. package/templates/workspaces/_shared/AGENTS-orchestrator.md +19 -9
  15. package/templates/workspaces/_shared/AGENTS.md +9 -0
  16. package/templates/workspaces/_shared/HEARTBEAT.md +18 -0
  17. package/templates/workspaces/_shared/PLAYBOOK.md +6 -6
  18. package/templates/workspaces/_shared/SOUL-coding.md +20 -0
  19. package/templates/workspaces/_shared/SOUL-hermes.md +20 -0
  20. package/templates/workspaces/_shared/SOUL-orchestrator.md +20 -0
  21. package/templates/workspaces/_shared/SOUL.md +20 -0
  22. package/templates/workspaces/athena/AGENTS.md +172 -0
  23. package/templates/workspaces/athena/SOUL.md +59 -0
  24. package/templates/workspaces/athena/TOOLS.md +63 -0
  25. package/templates/workspaces/devon/AGENTS.md +50 -34
  26. package/templates/workspaces/devon/TOOLS.md +20 -37
  27. package/templates/workspaces/dylan/AGENTS.md +44 -34
  28. package/templates/workspaces/dylan/TOOLS.md +11 -35
  29. package/templates/workspaces/felix/AGENTS.md +50 -34
  30. package/templates/workspaces/felix/TOOLS.md +20 -45
  31. package/templates/workspaces/morgan/AGENTS.md +48 -39
  32. package/templates/workspaces/morgan/TOOLS.md +26 -9
  33. package/templates/workspaces/priya/AGENTS.md +68 -0
  34. package/templates/workspaces/priya/TOOLS.md +32 -0
  35. package/templates/workspaces/quinn/AGENTS.md +50 -34
  36. package/templates/workspaces/quinn/TOOLS.md +30 -48
  37. package/templates/workspaces/sasha/AGENTS.md +68 -0
  38. package/templates/workspaces/sasha/TOOLS.md +32 -0
  39. package/bin/alice-cloud.cjs +0 -385
  40. package/lib/mission-control.mjs +0 -242
  41. package/snapshots/.gitkeep +0 -0
  42. package/templates/mission-control-bridge/index.ts +0 -695
  43. package/templates/mission-control-bridge/openclaw.plugin.json +0 -8
  44. package/templates/mission-control-bridge/package.json +0 -11
  45. package/templates/skills/.gitkeep +0 -0
  46. package/templates/skills/acculynx/SKILL.md +0 -183
  47. package/templates/skills/acculynx/references/analysis_template.py +0 -116
  48. package/templates/skills/acculynx/references/dashboard_page.tsx +0 -641
  49. package/templates/skills/claude-code/.gitkeep +0 -0
  50. package/templates/skills/claude-code/SKILL.md +0 -111
  51. package/templates/skills/coding-agent/SKILL.md +0 -68
  52. package/templates/skills/crawl4ai/SKILL.md +0 -119
  53. package/templates/skills/crawl4ai/scripts/crwl +0 -3
  54. package/templates/workspaces/.gitkeep +0 -0
  55. package/templates/workspaces/_shared/.gitkeep +0 -0
  56. package/templates/workspaces/accuscope/AGENTS.md +0 -38
  57. package/templates/workspaces/accuscope/FEEDBACK.md +0 -27
  58. package/templates/workspaces/accuscope/HEARTBEAT.md +0 -26
  59. package/templates/workspaces/accuscope/IDENTITY.md +0 -48
  60. package/templates/workspaces/accuscope/LEARNINGS.md +0 -46
  61. package/templates/workspaces/accuscope/MEMORY.md +0 -47
  62. package/templates/workspaces/accuscope/PLAYBOOK.md +0 -65
  63. package/templates/workspaces/accuscope/SOUL.md +0 -40
  64. package/templates/workspaces/accuscope/TOOLS.md +0 -63
  65. package/templates/workspaces/accuscope/USER.md +0 -39
  66. package/templates/workspaces/aiden/AGENTS.md +0 -52
  67. package/templates/workspaces/aiden/FEEDBACK.md +0 -12
  68. package/templates/workspaces/aiden/HEARTBEAT.md +0 -9
  69. package/templates/workspaces/aiden/IDENTITY.md +0 -6
  70. package/templates/workspaces/aiden/LEARNINGS.md +0 -6
  71. package/templates/workspaces/aiden/MEMORY.md +0 -22
  72. package/templates/workspaces/aiden/PLAYBOOK.md +0 -16
  73. package/templates/workspaces/aiden/SOUL.md +0 -39
  74. package/templates/workspaces/aiden/TOOLS.md +0 -57
  75. package/templates/workspaces/aiden/USER.md +0 -17
  76. package/templates/workspaces/alex/AGENTS.md +0 -52
  77. package/templates/workspaces/alex/FEEDBACK.md +0 -11
  78. package/templates/workspaces/alex/HEARTBEAT.md +0 -9
  79. package/templates/workspaces/alex/IDENTITY.md +0 -6
  80. package/templates/workspaces/alex/LEARNINGS.md +0 -5
  81. package/templates/workspaces/alex/MEMORY.md +0 -22
  82. package/templates/workspaces/alex/PLAYBOOK.md +0 -16
  83. package/templates/workspaces/alex/SOUL.md +0 -40
  84. package/templates/workspaces/alex/TOOLS.md +0 -56
  85. package/templates/workspaces/alex/USER.md +0 -13
  86. package/templates/workspaces/aria/AGENTS.md +0 -18
  87. package/templates/workspaces/aria/FEEDBACK.md +0 -12
  88. package/templates/workspaces/aria/HEARTBEAT.md +0 -32
  89. package/templates/workspaces/aria/IDENTITY.md +0 -12
  90. package/templates/workspaces/aria/LEARNINGS.md +0 -31
  91. package/templates/workspaces/aria/MEMORY.md +0 -29
  92. package/templates/workspaces/aria/PLAYBOOK.md +0 -71
  93. package/templates/workspaces/aria/SOUL.md +0 -57
  94. package/templates/workspaces/aria/TOOLS.md +0 -47
  95. package/templates/workspaces/aria/USER.md +0 -18
  96. package/templates/workspaces/audrey/AGENTS.md +0 -59
  97. package/templates/workspaces/audrey/FEEDBACK.md +0 -11
  98. package/templates/workspaces/audrey/HEARTBEAT.md +0 -9
  99. package/templates/workspaces/audrey/IDENTITY.md +0 -6
  100. package/templates/workspaces/audrey/LEARNINGS.md +0 -5
  101. package/templates/workspaces/audrey/MEMORY.md +0 -22
  102. package/templates/workspaces/audrey/PLAYBOOK.md +0 -16
  103. package/templates/workspaces/audrey/SOUL.md +0 -39
  104. package/templates/workspaces/audrey/TOOLS.md +0 -15
  105. package/templates/workspaces/audrey/USER.md +0 -13
  106. package/templates/workspaces/avery/AGENTS.md +0 -52
  107. package/templates/workspaces/avery/FEEDBACK.md +0 -12
  108. package/templates/workspaces/avery/HEARTBEAT.md +0 -5
  109. package/templates/workspaces/avery/IDENTITY.md +0 -6
  110. package/templates/workspaces/avery/LEARNINGS.md +0 -6
  111. package/templates/workspaces/avery/MEMORY.md +0 -22
  112. package/templates/workspaces/avery/PLAYBOOK.md +0 -16
  113. package/templates/workspaces/avery/SOUL.md +0 -40
  114. package/templates/workspaces/avery/TOOLS.md +0 -47
  115. package/templates/workspaces/avery/USER.md +0 -17
  116. package/templates/workspaces/avery/skills/claude-code/SKILL.md +0 -38
  117. package/templates/workspaces/avery/skills/claude-code/claude_code +0 -55
  118. package/templates/workspaces/caleb/AGENTS.md +0 -52
  119. package/templates/workspaces/caleb/FEEDBACK.md +0 -11
  120. package/templates/workspaces/caleb/HEARTBEAT.md +0 -9
  121. package/templates/workspaces/caleb/IDENTITY.md +0 -6
  122. package/templates/workspaces/caleb/LEARNINGS.md +0 -5
  123. package/templates/workspaces/caleb/MEMORY.md +0 -22
  124. package/templates/workspaces/caleb/PLAYBOOK.md +0 -16
  125. package/templates/workspaces/caleb/SOUL.md +0 -39
  126. package/templates/workspaces/caleb/TOOLS.md +0 -30
  127. package/templates/workspaces/caleb/USER.md +0 -13
  128. package/templates/workspaces/clara/AGENTS.md +0 -59
  129. package/templates/workspaces/clara/FEEDBACK.md +0 -12
  130. package/templates/workspaces/clara/HEARTBEAT.md +0 -5
  131. package/templates/workspaces/clara/IDENTITY.md +0 -6
  132. package/templates/workspaces/clara/LEARNINGS.md +0 -6
  133. package/templates/workspaces/clara/MEMORY.md +0 -22
  134. package/templates/workspaces/clara/PLAYBOOK.md +0 -16
  135. package/templates/workspaces/clara/SOUL.md +0 -39
  136. package/templates/workspaces/clara/TOOLS.md +0 -15
  137. package/templates/workspaces/clara/USER.md +0 -17
  138. package/templates/workspaces/daphne/AGENTS.md +0 -59
  139. package/templates/workspaces/daphne/FEEDBACK.md +0 -18
  140. package/templates/workspaces/daphne/HEARTBEAT.md +0 -5
  141. package/templates/workspaces/daphne/IDENTITY.md +0 -6
  142. package/templates/workspaces/daphne/LEARNINGS.md +0 -6
  143. package/templates/workspaces/daphne/MEMORY.md +0 -22
  144. package/templates/workspaces/daphne/PLAYBOOK.md +0 -48
  145. package/templates/workspaces/daphne/SOUL.md +0 -39
  146. package/templates/workspaces/daphne/TOOLS.md +0 -15
  147. package/templates/workspaces/daphne/USER.md +0 -17
  148. package/templates/workspaces/darius/AGENTS.md +0 -52
  149. package/templates/workspaces/darius/FEEDBACK.md +0 -12
  150. package/templates/workspaces/darius/HEARTBEAT.md +0 -5
  151. package/templates/workspaces/darius/IDENTITY.md +0 -6
  152. package/templates/workspaces/darius/LEARNINGS.md +0 -6
  153. package/templates/workspaces/darius/MEMORY.md +0 -22
  154. package/templates/workspaces/darius/PLAYBOOK.md +0 -16
  155. package/templates/workspaces/darius/SOUL.md +0 -40
  156. package/templates/workspaces/darius/TOOLS.md +0 -57
  157. package/templates/workspaces/darius/USER.md +0 -17
  158. package/templates/workspaces/darius/skills/claude-code/SKILL.md +0 -38
  159. package/templates/workspaces/darius/skills/claude-code/claude_code +0 -55
  160. package/templates/workspaces/devon/FEEDBACK.md +0 -11
  161. package/templates/workspaces/devon/HEARTBEAT.md +0 -5
  162. package/templates/workspaces/devon/IDENTITY.md +0 -6
  163. package/templates/workspaces/devon/LEARNINGS.md +0 -11
  164. package/templates/workspaces/devon/MEMORY.md +0 -22
  165. package/templates/workspaces/devon/PLAYBOOK.md +0 -16
  166. package/templates/workspaces/devon/SOUL.md +0 -40
  167. package/templates/workspaces/devon/USER.md +0 -13
  168. package/templates/workspaces/devon/check_github.py +0 -12
  169. package/templates/workspaces/devon/check_mc_env.py +0 -30
  170. package/templates/workspaces/devon/check_sb.py +0 -34
  171. package/templates/workspaces/devon/check_vercel.py +0 -12
  172. package/templates/workspaces/devon/get_mc_files.py +0 -17
  173. package/templates/workspaces/devon/write_heartbeat.py +0 -67
  174. package/templates/workspaces/dylan/.env.example +0 -33
  175. package/templates/workspaces/dylan/00007_verify_licenses_table.sql +0 -100
  176. package/templates/workspaces/dylan/FEEDBACK.md +0 -28
  177. package/templates/workspaces/dylan/HEARTBEAT.md +0 -5
  178. package/templates/workspaces/dylan/IDENTITY.md +0 -6
  179. package/templates/workspaces/dylan/LEARNINGS.md +0 -70
  180. package/templates/workspaces/dylan/MEMORY.md +0 -22
  181. package/templates/workspaces/dylan/PLAYBOOK.md +0 -16
  182. package/templates/workspaces/dylan/SOUL.md +0 -42
  183. package/templates/workspaces/dylan/STRIPE_PIPELINE.md +0 -185
  184. package/templates/workspaces/dylan/USER.md +0 -17
  185. package/templates/workspaces/dylan/n8n-stripe-welcome-workflow.json +0 -123
  186. package/templates/workspaces/dylan/skills/claude-code/SKILL.md +0 -38
  187. package/templates/workspaces/dylan/skills/claude-code/claude_code +0 -55
  188. package/templates/workspaces/dylan/stripe-webhook-handler.py +0 -433
  189. package/templates/workspaces/dylan/test_mock_webhook.py +0 -103
  190. package/templates/workspaces/elena/AGENTS.md +0 -59
  191. package/templates/workspaces/elena/FEEDBACK.md +0 -11
  192. package/templates/workspaces/elena/HEARTBEAT.md +0 -9
  193. package/templates/workspaces/elena/IDENTITY.md +0 -6
  194. package/templates/workspaces/elena/LEARNINGS.md +0 -5
  195. package/templates/workspaces/elena/MEMORY.md +0 -22
  196. package/templates/workspaces/elena/PLAYBOOK.md +0 -16
  197. package/templates/workspaces/elena/SOUL.md +0 -39
  198. package/templates/workspaces/elena/TOOLS.md +0 -15
  199. package/templates/workspaces/elena/USER.md +0 -13
  200. package/templates/workspaces/eva/AGENTS.md +0 -59
  201. package/templates/workspaces/eva/FEEDBACK.md +0 -11
  202. package/templates/workspaces/eva/HEARTBEAT.md +0 -9
  203. package/templates/workspaces/eva/IDENTITY.md +0 -6
  204. package/templates/workspaces/eva/LEARNINGS.md +0 -5
  205. package/templates/workspaces/eva/MEMORY.md +0 -22
  206. package/templates/workspaces/eva/PLAYBOOK.md +0 -16
  207. package/templates/workspaces/eva/SOUL.md +0 -39
  208. package/templates/workspaces/eva/TOOLS.md +0 -15
  209. package/templates/workspaces/eva/USER.md +0 -13
  210. package/templates/workspaces/felix/FEEDBACK.md +0 -11
  211. package/templates/workspaces/felix/HEARTBEAT.md +0 -5
  212. package/templates/workspaces/felix/IDENTITY.md +0 -6
  213. package/templates/workspaces/felix/LEARNINGS.md +0 -17
  214. package/templates/workspaces/felix/MEMORY.md +0 -22
  215. package/templates/workspaces/felix/PLAYBOOK.md +0 -16
  216. package/templates/workspaces/felix/SOUL.md +0 -40
  217. package/templates/workspaces/felix/USER.md +0 -13
  218. package/templates/workspaces/felix/fidelia-psychology.html +0 -1594
  219. package/templates/workspaces/felix/task.txt +0 -164
  220. package/templates/workspaces/hannah/AGENTS.md +0 -59
  221. package/templates/workspaces/hannah/FEEDBACK.md +0 -12
  222. package/templates/workspaces/hannah/HEARTBEAT.md +0 -5
  223. package/templates/workspaces/hannah/IDENTITY.md +0 -6
  224. package/templates/workspaces/hannah/LEARNINGS.md +0 -6
  225. package/templates/workspaces/hannah/MEMORY.md +0 -22
  226. package/templates/workspaces/hannah/PLAYBOOK.md +0 -16
  227. package/templates/workspaces/hannah/SOUL.md +0 -39
  228. package/templates/workspaces/hannah/TOOLS.md +0 -15
  229. package/templates/workspaces/hannah/USER.md +0 -17
  230. package/templates/workspaces/isaac/AGENTS.md +0 -52
  231. package/templates/workspaces/isaac/FEEDBACK.md +0 -12
  232. package/templates/workspaces/isaac/HEARTBEAT.md +0 -9
  233. package/templates/workspaces/isaac/IDENTITY.md +0 -6
  234. package/templates/workspaces/isaac/LEARNINGS.md +0 -6
  235. package/templates/workspaces/isaac/MEMORY.md +0 -22
  236. package/templates/workspaces/isaac/PLAYBOOK.md +0 -16
  237. package/templates/workspaces/isaac/SOUL.md +0 -40
  238. package/templates/workspaces/isaac/TOOLS.md +0 -52
  239. package/templates/workspaces/isaac/USER.md +0 -17
  240. package/templates/workspaces/isaac/skills/claude-code/SKILL.md +0 -38
  241. package/templates/workspaces/isaac/skills/claude-code/claude_code +0 -55
  242. package/templates/workspaces/logan/AGENTS.md +0 -59
  243. package/templates/workspaces/logan/FEEDBACK.md +0 -11
  244. package/templates/workspaces/logan/HEARTBEAT.md +0 -9
  245. package/templates/workspaces/logan/IDENTITY.md +0 -6
  246. package/templates/workspaces/logan/LEARNINGS.md +0 -5
  247. package/templates/workspaces/logan/MEMORY.md +0 -22
  248. package/templates/workspaces/logan/PLAYBOOK.md +0 -16
  249. package/templates/workspaces/logan/SOUL.md +0 -39
  250. package/templates/workspaces/logan/TOOLS.md +0 -15
  251. package/templates/workspaces/logan/USER.md +0 -13
  252. package/templates/workspaces/maxxipro/AGENTS.md +0 -29
  253. package/templates/workspaces/maxxipro/FEEDBACK.md +0 -19
  254. package/templates/workspaces/maxxipro/HEARTBEAT.md +0 -22
  255. package/templates/workspaces/maxxipro/IDENTITY.md +0 -35
  256. package/templates/workspaces/maxxipro/KNOWLEDGE.md +0 -335
  257. package/templates/workspaces/maxxipro/LEARNINGS.md +0 -47
  258. package/templates/workspaces/maxxipro/MEMORY.md +0 -60
  259. package/templates/workspaces/maxxipro/OUTREACH_TEMPLATES.md +0 -143
  260. package/templates/workspaces/maxxipro/PLAYBOOK.md +0 -81
  261. package/templates/workspaces/maxxipro/SOUL.md +0 -146
  262. package/templates/workspaces/maxxipro/TOOLS.md +0 -81
  263. package/templates/workspaces/maxxipro/USER.md +0 -40
  264. package/templates/workspaces/morgan/FEEDBACK.md +0 -19
  265. package/templates/workspaces/morgan/HEARTBEAT.md +0 -5
  266. package/templates/workspaces/morgan/IDENTITY.md +0 -6
  267. package/templates/workspaces/morgan/LEARNINGS.md +0 -18
  268. package/templates/workspaces/morgan/MEMORY.md +0 -22
  269. package/templates/workspaces/morgan/PLAYBOOK.md +0 -16
  270. package/templates/workspaces/morgan/SOUL.md +0 -39
  271. package/templates/workspaces/morgan/USER.md +0 -13
  272. package/templates/workspaces/nadia/AGENTS.md +0 -59
  273. package/templates/workspaces/nadia/FEEDBACK.md +0 -12
  274. package/templates/workspaces/nadia/HEARTBEAT.md +0 -5
  275. package/templates/workspaces/nadia/IDENTITY.md +0 -6
  276. package/templates/workspaces/nadia/LEARNINGS.md +0 -6
  277. package/templates/workspaces/nadia/MEMORY.md +0 -22
  278. package/templates/workspaces/nadia/PLAYBOOK.md +0 -16
  279. package/templates/workspaces/nadia/SOUL.md +0 -39
  280. package/templates/workspaces/nadia/TOOLS.md +0 -15
  281. package/templates/workspaces/nadia/USER.md +0 -13
  282. package/templates/workspaces/nate/AGENTS.md +0 -24
  283. package/templates/workspaces/nate/FEEDBACK.md +0 -12
  284. package/templates/workspaces/nate/HEARTBEAT.md +0 -33
  285. package/templates/workspaces/nate/IDENTITY.md +0 -15
  286. package/templates/workspaces/nate/LEARNINGS.md +0 -33
  287. package/templates/workspaces/nate/MEMORY.md +0 -39
  288. package/templates/workspaces/nate/PLAYBOOK.md +0 -160
  289. package/templates/workspaces/nate/SOUL.md +0 -50
  290. package/templates/workspaces/nate/TOOLS.md +0 -111
  291. package/templates/workspaces/nate/USER.md +0 -32
  292. package/templates/workspaces/olivia/.last-openclaw-version +0 -1
  293. package/templates/workspaces/olivia/.npmrc.tmp +0 -0
  294. package/templates/workspaces/olivia/AGENTS.md +0 -77
  295. package/templates/workspaces/olivia/ALPHA_CODING_BENCHMARK.txt +0 -148
  296. package/templates/workspaces/olivia/ALPHA_MODEL_GUIDE.md +0 -393
  297. package/templates/workspaces/olivia/FEEDBACK.md +0 -13
  298. package/templates/workspaces/olivia/HEADTOHEAD_BENCHMARK.txt +0 -1289
  299. package/templates/workspaces/olivia/HEARTBEAT.md +0 -267
  300. package/templates/workspaces/olivia/IDENTITY.md +0 -6
  301. package/templates/workspaces/olivia/LEARNINGS.md +0 -708
  302. package/templates/workspaces/olivia/MEMORY.md +0 -202
  303. package/templates/workspaces/olivia/MISSION_CONTROL_DESIGN_SPEC_v1.md +0 -1143
  304. package/templates/workspaces/olivia/MVP-COMPLETION-SUMMARY.md +0 -175
  305. package/templates/workspaces/olivia/NETWORK_IMPLEMENTATION_PLAN.md +0 -1556
  306. package/templates/workspaces/olivia/NEW_NODES_BENCHMARK.txt +0 -947
  307. package/templates/workspaces/olivia/PLAYBOOK.md +0 -42
  308. package/templates/workspaces/olivia/SELF-HEALING-COMPLETE.md +0 -150
  309. package/templates/workspaces/olivia/SOUL.md +0 -42
  310. package/templates/workspaces/olivia/TOOLS.md +0 -15
  311. package/templates/workspaces/olivia/USER.md +0 -17
  312. package/templates/workspaces/olivia/alicefleet-supabase-credentials.md +0 -50
  313. package/templates/workspaces/olivia/dzombo-copy-rewrite.md +0 -115
  314. package/templates/workspaces/olivia/dzombo-implementation-plan.md +0 -1248
  315. package/templates/workspaces/olivia/fidelia-psychology.html +0 -1594
  316. package/templates/workspaces/olivia/lead_debug.png +0 -0
  317. package/templates/workspaces/olivia/minimatch-10.2.4.tgz +0 -0
  318. package/templates/workspaces/olivia/operation-bllm-research.md +0 -157
  319. package/templates/workspaces/olivia/qa-audit-mission-control-v2.md +0 -538
  320. package/templates/workspaces/olivia/roofmaxx_logo.svg +0 -1
  321. package/templates/workspaces/olivia/roofmaxx_social.jpg +0 -0
  322. package/templates/workspaces/olivia/skills/1password/SKILL.md +0 -53
  323. package/templates/workspaces/olivia/skills/1password/_meta.json +0 -6
  324. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/README.md +0 -57
  325. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/SKILL.md +0 -534
  326. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/_meta.json +0 -6
  327. package/templates/workspaces/olivia/skills/agent-security/SKILL.md +0 -69
  328. package/templates/workspaces/olivia/skills/agent-security/_meta.json +0 -6
  329. package/templates/workspaces/olivia/skills/agentic-security-audit/SKILL.md +0 -855
  330. package/templates/workspaces/olivia/skills/agentic-security-audit/_meta.json +0 -6
  331. package/templates/workspaces/olivia/skills/ai-automation-consulting/SKILL.md +0 -67
  332. package/templates/workspaces/olivia/skills/ai-automation-consulting/_meta.json +0 -6
  333. package/templates/workspaces/olivia/skills/ai-automation-consulting/skill.json +0 -12
  334. package/templates/workspaces/olivia/skills/ai-presentation-maker/SKILL.md +0 -1104
  335. package/templates/workspaces/olivia/skills/ai-presentation-maker/_meta.json +0 -6
  336. package/templates/workspaces/olivia/skills/ai-productivity-audit/SKILL.md +0 -181
  337. package/templates/workspaces/olivia/skills/ai-productivity-audit/_meta.json +0 -6
  338. package/templates/workspaces/olivia/skills/ai-researcher/README.md +0 -31
  339. package/templates/workspaces/olivia/skills/ai-researcher/SKILL.md +0 -59
  340. package/templates/workspaces/olivia/skills/ai-researcher/_meta.json +0 -6
  341. package/templates/workspaces/olivia/skills/ai-seo-writer/README.md +0 -19
  342. package/templates/workspaces/olivia/skills/ai-seo-writer/SKILL.md +0 -100
  343. package/templates/workspaces/olivia/skills/ai-seo-writer/_meta.json +0 -6
  344. package/templates/workspaces/olivia/skills/analytics-tracking-2/SKILL.md +0 -309
  345. package/templates/workspaces/olivia/skills/analytics-tracking-2/_meta.json +0 -6
  346. package/templates/workspaces/olivia/skills/api-doc-writer/SKILL.md +0 -232
  347. package/templates/workspaces/olivia/skills/api-doc-writer/_meta.json +0 -6
  348. package/templates/workspaces/olivia/skills/api-generator/SKILL.md +0 -49
  349. package/templates/workspaces/olivia/skills/api-generator/_meta.json +0 -6
  350. package/templates/workspaces/olivia/skills/api-generator/tips.md +0 -10
  351. package/templates/workspaces/olivia/skills/apple-notes/SKILL.md +0 -50
  352. package/templates/workspaces/olivia/skills/apple-notes/_meta.json +0 -6
  353. package/templates/workspaces/olivia/skills/apple-reminders/SKILL.md +0 -67
  354. package/templates/workspaces/olivia/skills/apple-reminders/_meta.json +0 -6
  355. package/templates/workspaces/olivia/skills/automation-workflows/SKILL.md +0 -267
  356. package/templates/workspaces/olivia/skills/automation-workflows/_meta.json +0 -6
  357. package/templates/workspaces/olivia/skills/autoresearch/SKILL.md +0 -46
  358. package/templates/workspaces/olivia/skills/autoresearch/aria_write.py +0 -148
  359. package/templates/workspaces/olivia/skills/autoresearch/autoresearch.py +0 -75
  360. package/templates/workspaces/olivia/skills/azure-devops/SKILL.md +0 -115
  361. package/templates/workspaces/olivia/skills/azure-devops/_meta.json +0 -6
  362. package/templates/workspaces/olivia/skills/blogwatcher/SKILL.md +0 -46
  363. package/templates/workspaces/olivia/skills/blogwatcher/_meta.json +0 -6
  364. package/templates/workspaces/olivia/skills/blucli/SKILL.md +0 -27
  365. package/templates/workspaces/olivia/skills/blucli/_meta.json +0 -6
  366. package/templates/workspaces/olivia/skills/check-analytics/SKILL.md +0 -92
  367. package/templates/workspaces/olivia/skills/check-analytics/_meta.json +0 -6
  368. package/templates/workspaces/olivia/skills/cloud-architect/SKILL.md +0 -89
  369. package/templates/workspaces/olivia/skills/cloud-architect/_meta.json +0 -6
  370. package/templates/workspaces/olivia/skills/cloud-infra-automation/SKILL.md +0 -50
  371. package/templates/workspaces/olivia/skills/cloud-infra-automation/_meta.json +0 -6
  372. package/templates/workspaces/olivia/skills/cloud-storage/SKILL.md +0 -61
  373. package/templates/workspaces/olivia/skills/cloud-storage/_meta.json +0 -6
  374. package/templates/workspaces/olivia/skills/cloud-storage/auth.md +0 -97
  375. package/templates/workspaces/olivia/skills/cloud-storage/costs.md +0 -88
  376. package/templates/workspaces/olivia/skills/cloud-storage/providers.md +0 -55
  377. package/templates/workspaces/olivia/skills/copywriting-pro/SKILL.md +0 -107
  378. package/templates/workspaces/olivia/skills/copywriting-pro/_meta.json +0 -6
  379. package/templates/workspaces/olivia/skills/data-analyst-pro/SKILL.md +0 -21
  380. package/templates/workspaces/olivia/skills/data-analyst-pro/_meta.json +0 -6
  381. package/templates/workspaces/olivia/skills/database-designer/README.md +0 -388
  382. package/templates/workspaces/olivia/skills/database-designer/SKILL.md +0 -66
  383. package/templates/workspaces/olivia/skills/database-designer/_meta.json +0 -6
  384. package/templates/workspaces/olivia/skills/database-designer/index_optimizer.py +0 -926
  385. package/templates/workspaces/olivia/skills/database-designer/migration_generator.py +0 -1199
  386. package/templates/workspaces/olivia/skills/database-designer/schema_analyzer.py +0 -982
  387. package/templates/workspaces/olivia/skills/deploy-agent/SKILL.md +0 -255
  388. package/templates/workspaces/olivia/skills/deploy-agent/_meta.json +0 -6
  389. package/templates/workspaces/olivia/skills/devops-automation-pack/SKILL.md +0 -72
  390. package/templates/workspaces/olivia/skills/devops-automation-pack/_meta.json +0 -6
  391. package/templates/workspaces/olivia/skills/devops-automation-pack/deploy.sh +0 -0
  392. package/templates/workspaces/olivia/skills/financial-analysis-agent/SKILL.md +0 -489
  393. package/templates/workspaces/olivia/skills/financial-analysis-agent/_meta.json +0 -6
  394. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/README.md +0 -72
  395. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/SKILL.md +0 -226
  396. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/_meta.json +0 -6
  397. package/templates/workspaces/olivia/skills/gifgrep/SKILL.md +0 -47
  398. package/templates/workspaces/olivia/skills/gifgrep/_meta.json +0 -6
  399. package/templates/workspaces/olivia/skills/github/SKILL.md +0 -47
  400. package/templates/workspaces/olivia/skills/github/_meta.json +0 -6
  401. package/templates/workspaces/olivia/skills/gog/SKILL.md +0 -36
  402. package/templates/workspaces/olivia/skills/gog/_meta.json +0 -6
  403. package/templates/workspaces/olivia/skills/growth-strategy-hub/SKILL.md +0 -135
  404. package/templates/workspaces/olivia/skills/growth-strategy-hub/_meta.json +0 -6
  405. package/templates/workspaces/olivia/skills/growth-strategy-hub/metadata.json +0 -4
  406. package/templates/workspaces/olivia/skills/hetzner-cloud/SKILL.md +0 -130
  407. package/templates/workspaces/olivia/skills/hetzner-cloud/_meta.json +0 -6
  408. package/templates/workspaces/olivia/skills/himalaya/SKILL.md +0 -217
  409. package/templates/workspaces/olivia/skills/himalaya/_meta.json +0 -6
  410. package/templates/workspaces/olivia/skills/hotel-recommendation/SKILL.md +0 -117
  411. package/templates/workspaces/olivia/skills/hotel-recommendation/_meta.json +0 -6
  412. package/templates/workspaces/olivia/skills/hr-policy-generator/SKILL.md +0 -54
  413. package/templates/workspaces/olivia/skills/hr-policy-generator/_meta.json +0 -6
  414. package/templates/workspaces/olivia/skills/human-writing/SKILL.md +0 -41
  415. package/templates/workspaces/olivia/skills/human-writing/_meta.json +0 -6
  416. package/templates/workspaces/olivia/skills/imsg/SKILL.md +0 -25
  417. package/templates/workspaces/olivia/skills/imsg/_meta.json +0 -6
  418. package/templates/workspaces/olivia/skills/in-depth-research/SKILL.md +0 -124
  419. package/templates/workspaces/olivia/skills/in-depth-research/_meta.json +0 -6
  420. package/templates/workspaces/olivia/skills/in-depth-research/methodology.md +0 -75
  421. package/templates/workspaces/olivia/skills/in-depth-research/output-formats.md +0 -168
  422. package/templates/workspaces/olivia/skills/in-depth-research/sources.md +0 -80
  423. package/templates/workspaces/olivia/skills/javascript-skills/README.md +0 -71
  424. package/templates/workspaces/olivia/skills/javascript-skills/SKILL.md +0 -746
  425. package/templates/workspaces/olivia/skills/javascript-skills/_meta.json +0 -6
  426. package/templates/workspaces/olivia/skills/leadership-strategy-playbook/SKILL.md +0 -147
  427. package/templates/workspaces/olivia/skills/leadership-strategy-playbook/_meta.json +0 -6
  428. package/templates/workspaces/olivia/skills/market-research-agent/README.md +0 -29
  429. package/templates/workspaces/olivia/skills/market-research-agent/SKILL.md +0 -52
  430. package/templates/workspaces/olivia/skills/market-research-agent/_meta.json +0 -6
  431. package/templates/workspaces/olivia/skills/marketing-analytics/SKILL.md +0 -74
  432. package/templates/workspaces/olivia/skills/marketing-analytics/_meta.json +0 -6
  433. package/templates/workspaces/olivia/skills/marketing-master-io/SKILL.md +0 -125
  434. package/templates/workspaces/olivia/skills/marketing-master-io/_meta.json +0 -6
  435. package/templates/workspaces/olivia/skills/marketing-strategy-pmm/SKILL.md +0 -398
  436. package/templates/workspaces/olivia/skills/marketing-strategy-pmm/_meta.json +0 -6
  437. package/templates/workspaces/olivia/skills/meta-ads-analytics/SKILL.md +0 -53
  438. package/templates/workspaces/olivia/skills/meta-ads-analytics/_meta.json +0 -6
  439. package/templates/workspaces/olivia/skills/obsidian/SKILL.md +0 -55
  440. package/templates/workspaces/olivia/skills/obsidian/_meta.json +0 -6
  441. package/templates/workspaces/olivia/skills/openclaw-accounting/SKILL.md +0 -125
  442. package/templates/workspaces/olivia/skills/openclaw-accounting/_meta.json +0 -6
  443. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANGELOG.md +0 -35
  444. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANNELLOG.md +0 -73
  445. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/README.md +0 -161
  446. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/SKILL.md +0 -130
  447. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/_meta.json +0 -6
  448. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/config.json +0 -36
  449. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/metadata.json +0 -19
  450. package/templates/workspaces/olivia/skills/openhue/SKILL.md +0 -30
  451. package/templates/workspaces/olivia/skills/openhue/_meta.json +0 -6
  452. package/templates/workspaces/olivia/skills/orgx-operations-agent/SKILL.md +0 -41
  453. package/templates/workspaces/olivia/skills/orgx-operations-agent/_meta.json +0 -6
  454. package/templates/workspaces/olivia/skills/outreach/SKILL.md +0 -84
  455. package/templates/workspaces/olivia/skills/outreach/_meta.json +0 -6
  456. package/templates/workspaces/olivia/skills/outreach/by-type.md +0 -166
  457. package/templates/workspaces/olivia/skills/outreach/templates.md +0 -154
  458. package/templates/workspaces/olivia/skills/outreach/tracking.md +0 -145
  459. package/templates/workspaces/olivia/skills/persona-hr-coordinator/SKILL.md +0 -38
  460. package/templates/workspaces/olivia/skills/persona-hr-coordinator/_meta.json +0 -6
  461. package/templates/workspaces/olivia/skills/personal-productivity/SKILL.md +0 -161
  462. package/templates/workspaces/olivia/skills/personal-productivity/_meta.json +0 -6
  463. package/templates/workspaces/olivia/skills/personal-productivity/index.js +0 -363
  464. package/templates/workspaces/olivia/skills/personal-productivity/package.json +0 -15
  465. package/templates/workspaces/olivia/skills/personal-travel/README.md +0 -34
  466. package/templates/workspaces/olivia/skills/personal-travel/SKILL.md +0 -46
  467. package/templates/workspaces/olivia/skills/personal-travel/_meta.json +0 -6
  468. package/templates/workspaces/olivia/skills/presentation-html-generator-skill/SKILL.md +0 -185
  469. package/templates/workspaces/olivia/skills/presentation-html-generator-skill/_meta.json +0 -6
  470. package/templates/workspaces/olivia/skills/product-manager/SKILL.md +0 -77
  471. package/templates/workspaces/olivia/skills/product-manager/_meta.json +0 -6
  472. package/templates/workspaces/olivia/skills/quant-strategy/SKILL.md +0 -28
  473. package/templates/workspaces/olivia/skills/quant-strategy/_meta.json +0 -6
  474. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/README.md +0 -29
  475. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/SKILL.md +0 -45
  476. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/_meta.json +0 -6
  477. package/templates/workspaces/olivia/skills/security-auditor/SKILL.md +0 -399
  478. package/templates/workspaces/olivia/skills/security-auditor/_meta.json +0 -6
  479. package/templates/workspaces/olivia/skills/security-hardening/SKILL.md +0 -296
  480. package/templates/workspaces/olivia/skills/security-hardening/_meta.json +0 -6
  481. package/templates/workspaces/olivia/skills/security-scanner/SKILL.md +0 -67
  482. package/templates/workspaces/olivia/skills/security-scanner/_meta.json +0 -6
  483. package/templates/workspaces/olivia/skills/seo-optimization/SKILL.md +0 -31
  484. package/templates/workspaces/olivia/skills/seo-optimization/_meta.json +0 -6
  485. package/templates/workspaces/olivia/skills/service-booking/SKILL.md +0 -193
  486. package/templates/workspaces/olivia/skills/service-booking/_meta.json +0 -6
  487. package/templates/workspaces/olivia/skills/sme-hr-automation/SKILL.md +0 -131
  488. package/templates/workspaces/olivia/skills/sme-hr-automation/_meta.json +0 -6
  489. package/templates/workspaces/olivia/skills/social-media-scheduler/README.md +0 -29
  490. package/templates/workspaces/olivia/skills/social-media-scheduler/SKILL.md +0 -49
  491. package/templates/workspaces/olivia/skills/social-media-scheduler/_meta.json +0 -6
  492. package/templates/workspaces/olivia/skills/sonoscli/SKILL.md +0 -26
  493. package/templates/workspaces/olivia/skills/sonoscli/_meta.json +0 -6
  494. package/templates/workspaces/olivia/skills/strategy-advisor/SKILL.md +0 -33
  495. package/templates/workspaces/olivia/skills/strategy-advisor/_meta.json +0 -6
  496. package/templates/workspaces/olivia/skills/summarize/SKILL.md +0 -49
  497. package/templates/workspaces/olivia/skills/summarize/_meta.json +0 -6
  498. package/templates/workspaces/olivia/skills/things-mac/SKILL.md +0 -61
  499. package/templates/workspaces/olivia/skills/things-mac/_meta.json +0 -6
  500. package/templates/workspaces/olivia/skills/travel-itinerary-planner/SKILL.md +0 -121
  501. package/templates/workspaces/olivia/skills/travel-itinerary-planner/_meta.json +0 -6
  502. package/templates/workspaces/olivia/skills/travel-manager/SKILL.md +0 -36
  503. package/templates/workspaces/olivia/skills/travel-manager/_meta.json +0 -6
  504. package/templates/workspaces/olivia/skills/travel-planning/SKILL.md +0 -238
  505. package/templates/workspaces/olivia/skills/travel-planning/_meta.json +0 -6
  506. package/templates/workspaces/olivia/skills/travel-planning/booking-guide.md +0 -91
  507. package/templates/workspaces/olivia/skills/travel-planning/memory-template.md +0 -111
  508. package/templates/workspaces/olivia/skills/travel-planning/multi-city.md +0 -131
  509. package/templates/workspaces/olivia/skills/travel-planning/packing-templates.md +0 -155
  510. package/templates/workspaces/olivia/skills/travel-planning/setup.md +0 -66
  511. package/templates/workspaces/olivia/skills/update-it-all/SKILL.md +0 -143
  512. package/templates/workspaces/olivia/skills/update-it-all/_meta.json +0 -6
  513. package/templates/workspaces/olivia/skills/voice/SKILL.md +0 -62
  514. package/templates/workspaces/olivia/skills/weather/SKILL.md +0 -49
  515. package/templates/workspaces/olivia/skills/weather/_meta.json +0 -6
  516. package/templates/workspaces/olivia/skills/web-researcher/SKILL.md +0 -21
  517. package/templates/workspaces/olivia/skills/web-researcher/_meta.json +0 -6
  518. package/templates/workspaces/olivia/skills/website-seo/SKILL.md +0 -284
  519. package/templates/workspaces/olivia/skills/website-seo/_meta.json +0 -6
  520. package/templates/workspaces/olivia/stripe-welcome-n8n.json +0 -103
  521. package/templates/workspaces/olivia/test2.wav.wav +0 -0
  522. package/templates/workspaces/olivia/test_speech.json +0 -1
  523. package/templates/workspaces/olivia/test_speech.srt +0 -0
  524. package/templates/workspaces/olivia/test_speech.tsv +0 -1
  525. package/templates/workspaces/olivia/test_speech.txt +0 -0
  526. package/templates/workspaces/olivia/test_speech.vtt +0 -2
  527. package/templates/workspaces/owen/AGENTS.md +0 -59
  528. package/templates/workspaces/owen/FEEDBACK.md +0 -12
  529. package/templates/workspaces/owen/HEARTBEAT.md +0 -5
  530. package/templates/workspaces/owen/IDENTITY.md +0 -6
  531. package/templates/workspaces/owen/LEARNINGS.md +0 -46
  532. package/templates/workspaces/owen/MEMORY.md +0 -22
  533. package/templates/workspaces/owen/PLAYBOOK.md +0 -16
  534. package/templates/workspaces/owen/SOUL.md +0 -39
  535. package/templates/workspaces/owen/TOOLS.md +0 -15
  536. package/templates/workspaces/owen/USER.md +0 -17
  537. package/templates/workspaces/parker/AGENTS.md +0 -59
  538. package/templates/workspaces/parker/FEEDBACK.md +0 -11
  539. package/templates/workspaces/parker/HEARTBEAT.md +0 -5
  540. package/templates/workspaces/parker/IDENTITY.md +0 -6
  541. package/templates/workspaces/parker/LEARNINGS.md +0 -17
  542. package/templates/workspaces/parker/MEMORY.md +0 -22
  543. package/templates/workspaces/parker/PLAYBOOK.md +0 -16
  544. package/templates/workspaces/parker/SOUL.md +0 -39
  545. package/templates/workspaces/parker/TOOLS.md +0 -15
  546. package/templates/workspaces/parker/USER.md +0 -13
  547. package/templates/workspaces/quinn/FEEDBACK.md +0 -11
  548. package/templates/workspaces/quinn/HEARTBEAT.md +0 -5
  549. package/templates/workspaces/quinn/IDENTITY.md +0 -6
  550. package/templates/workspaces/quinn/LEARNINGS.md +0 -35
  551. package/templates/workspaces/quinn/MEMORY.md +0 -22
  552. package/templates/workspaces/quinn/PLAYBOOK.md +0 -16
  553. package/templates/workspaces/quinn/SOUL.md +0 -40
  554. package/templates/workspaces/quinn/USER.md +0 -17
  555. package/templates/workspaces/quinn/alice-login-page.png +0 -0
  556. package/templates/workspaces/rowan/AGENTS.md +0 -59
  557. package/templates/workspaces/rowan/FEEDBACK.md +0 -12
  558. package/templates/workspaces/rowan/HEARTBEAT.md +0 -5
  559. package/templates/workspaces/rowan/IDENTITY.md +0 -6
  560. package/templates/workspaces/rowan/LEARNINGS.md +0 -12
  561. package/templates/workspaces/rowan/MEMORY.md +0 -22
  562. package/templates/workspaces/rowan/PLAYBOOK.md +0 -16
  563. package/templates/workspaces/rowan/SOUL.md +0 -40
  564. package/templates/workspaces/rowan/TOOLS.md +0 -59
  565. package/templates/workspaces/rowan/USER.md +0 -17
  566. package/templates/workspaces/selena/AGENTS.md +0 -59
  567. package/templates/workspaces/selena/FEEDBACK.md +0 -12
  568. package/templates/workspaces/selena/HEARTBEAT.md +0 -5
  569. package/templates/workspaces/selena/IDENTITY.md +0 -6
  570. package/templates/workspaces/selena/LEARNINGS.md +0 -24
  571. package/templates/workspaces/selena/MEMORY.md +0 -22
  572. package/templates/workspaces/selena/PLAYBOOK.md +0 -16
  573. package/templates/workspaces/selena/SOUL.md +0 -40
  574. package/templates/workspaces/selena/TOOLS.md +0 -47
  575. package/templates/workspaces/selena/USER.md +0 -17
  576. package/templates/workspaces/selena/kids-ai-security-compliance-plan.md +0 -791
  577. package/templates/workspaces/selena/kidspark-coppa-compliance-audit.md +0 -866
  578. package/templates/workspaces/sloane/AGENTS.md +0 -59
  579. package/templates/workspaces/sloane/FEEDBACK.md +0 -12
  580. package/templates/workspaces/sloane/HEARTBEAT.md +0 -9
  581. package/templates/workspaces/sloane/IDENTITY.md +0 -6
  582. package/templates/workspaces/sloane/LEARNINGS.md +0 -6
  583. package/templates/workspaces/sloane/MEMORY.md +0 -22
  584. package/templates/workspaces/sloane/PLAYBOOK.md +0 -16
  585. package/templates/workspaces/sloane/SOUL.md +0 -39
  586. package/templates/workspaces/sloane/TOOLS.md +0 -15
  587. package/templates/workspaces/sloane/USER.md +0 -13
  588. package/templates/workspaces/smoketestagent/AGENTS.md +0 -52
  589. package/templates/workspaces/smoketestagent/FEEDBACK.md +0 -3
  590. package/templates/workspaces/smoketestagent/HEARTBEAT.md +0 -14
  591. package/templates/workspaces/smoketestagent/IDENTITY.md +0 -6
  592. package/templates/workspaces/smoketestagent/LEARNINGS.md +0 -3
  593. package/templates/workspaces/smoketestagent/MEMORY.md +0 -24
  594. package/templates/workspaces/smoketestagent/PLAYBOOK.md +0 -7
  595. package/templates/workspaces/smoketestagent/SOUL.md +0 -32
  596. package/templates/workspaces/smoketestagent/TOOLS.md +0 -13
  597. package/templates/workspaces/smoketestagent/USER.md +0 -5
  598. package/templates/workspaces/sophie/AGENTS.md +0 -59
  599. package/templates/workspaces/sophie/FEEDBACK.md +0 -12
  600. package/templates/workspaces/sophie/HEARTBEAT.md +0 -9
  601. package/templates/workspaces/sophie/IDENTITY.md +0 -6
  602. package/templates/workspaces/sophie/LEARNINGS.md +0 -6
  603. package/templates/workspaces/sophie/MEMORY.md +0 -22
  604. package/templates/workspaces/sophie/PLAYBOOK.md +0 -16
  605. package/templates/workspaces/sophie/SOUL.md +0 -39
  606. package/templates/workspaces/sophie/TOOLS.md +0 -15
  607. package/templates/workspaces/sophie/USER.md +0 -17
  608. package/templates/workspaces/tommy/AGENTS.md +0 -59
  609. package/templates/workspaces/tommy/FEEDBACK.md +0 -12
  610. package/templates/workspaces/tommy/HEARTBEAT.md +0 -9
  611. package/templates/workspaces/tommy/IDENTITY.md +0 -6
  612. package/templates/workspaces/tommy/LEARNINGS.md +0 -6
  613. package/templates/workspaces/tommy/MEMORY.md +0 -22
  614. package/templates/workspaces/tommy/PLAYBOOK.md +0 -16
  615. package/templates/workspaces/tommy/SOUL.md +0 -39
  616. package/templates/workspaces/tommy/TOOLS.md +0 -15
  617. package/templates/workspaces/tommy/USER.md +0 -17
  618. package/templates/workspaces/uma/AGENTS.md +0 -59
  619. package/templates/workspaces/uma/FEEDBACK.md +0 -11
  620. package/templates/workspaces/uma/HEARTBEAT.md +0 -5
  621. package/templates/workspaces/uma/IDENTITY.md +0 -6
  622. package/templates/workspaces/uma/LEARNINGS.md +0 -11
  623. package/templates/workspaces/uma/MEMORY.md +0 -22
  624. package/templates/workspaces/uma/PLAYBOOK.md +0 -16
  625. package/templates/workspaces/uma/SOUL.md +0 -39
  626. package/templates/workspaces/uma/TOOLS.md +0 -15
  627. package/templates/workspaces/uma/USER.md +0 -13
  628. package/tools/.gitkeep +0 -0
@@ -1,1594 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Fidelia Psychology — <span data-i18n="footer.tagline">Steady ground for growing minds.</span></title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com">
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
- <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500;1,600&family=Nunito:wght@300;400;500;600;700&display=swap" rel="stylesheet">
10
- <style>
11
- /* =====================
12
- RESET & CUSTOM PROPS
13
- ===================== */
14
- *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
15
-
16
- :root {
17
- --primary: #4E8B7A;
18
- --primary-mid: #5F9E8C;
19
- --primary-dark: #3A7265; /* Avery: accessible eucalyptus for text */
20
- --amber: #D4895A;
21
- --amber-text: #9E5C28; /* Avery: accessible amber for text */
22
- --amber-light: #E0A47C;
23
- --periwinkle: #8A9EC4;
24
- --periwinkle-text:#4A6396; /* Avery: accessible periwinkle for text */
25
- --periwinkle-bg: #EEF1F8;
26
- --bg: #F7F4EF;
27
- --bg-warm: #EDE7DA;
28
- --bg-dark: #2C3B38;
29
- --bg-darkest: #1A2624;
30
- --white: #FEFCF8;
31
- --text: #2C2C30;
32
- --text-mid: #4A4A50;
33
- --text-light: #6A6A72;
34
- }
35
-
36
- html { scroll-behavior: smooth; font-size: 16px; }
37
-
38
- body {
39
- background: var(--bg);
40
- color: var(--text);
41
- font-family: 'Nunito', sans-serif;
42
- font-weight: 400;
43
- line-height: 1.72; /* Nadia */
44
- font-size: 1.0625rem; /* Nadia */
45
- overflow-x: hidden;
46
- }
47
-
48
- /* Linen-grain texture overlay */
49
- body::after {
50
- content: '';
51
- position: fixed;
52
- inset: 0;
53
- pointer-events: none;
54
- z-index: 9998;
55
- opacity: 0.028;
56
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
57
- background-size: 300px 300px;
58
- }
59
-
60
- /* Avery: text selection */
61
- ::selection { background: rgba(78,139,122,0.2); color: #2C2C30; }
62
-
63
- /* Avery: focus styles */
64
- :focus-visible {
65
- outline: 3px solid #3A7265;
66
- outline-offset: 3px;
67
- border-radius: 4px;
68
- }
69
- :focus:not(:focus-visible) { outline: none; }
70
-
71
- /* ============
72
- SKIP LINK (Avery)
73
- ============ */
74
- .skip-link {
75
- position: absolute;
76
- top: -100%;
77
- left: 1rem;
78
- padding: 0.75rem 1.5rem;
79
- background: #2C2C30;
80
- color: #F7F4EF;
81
- font-family: 'Nunito', sans-serif;
82
- font-size: 1rem;
83
- border-radius: 0 0 8px 8px;
84
- text-decoration: none;
85
- z-index: 9999;
86
- transition: top 0.2s;
87
- }
88
- .skip-link:focus { top: 0; }
89
-
90
- /* ============
91
- TYPOGRAPHY
92
- ============ */
93
- h1, h2, h3, h4 {
94
- font-family: 'Cormorant Garamond', serif;
95
- line-height: 1.18; /* Nadia */
96
- font-weight: 500;
97
- }
98
-
99
- h2 { margin-bottom: 1rem; } /* Nadia */
100
-
101
- .label {
102
- font-family: 'Nunito', sans-serif;
103
- font-size: 0.75rem;
104
- font-weight: 700;
105
- letter-spacing: 0.18em;
106
- text-transform: uppercase;
107
- color: var(--primary-dark); /* Avery: accessible color */
108
- display: block;
109
- margin-bottom: 0.65rem;
110
- }
111
-
112
- /* ============
113
- LAYOUT
114
- ============ */
115
- .container { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }
116
-
117
- section { padding: 4rem 2rem; } /* Nadia: standardized */
118
-
119
- /* ============
120
- SECTION ORNAMENT (Nadia)
121
- ============ */
122
- .section-ornament {
123
- text-align: center;
124
- color: var(--primary);
125
- opacity: 0.3;
126
- font-size: 1rem;
127
- letter-spacing: 0.5em;
128
- padding: 1rem 0;
129
- user-select: none;
130
- }
131
-
132
- /* ============
133
- BUTTONS (Nadia: padding, letter-spacing, weight)
134
- ============ */
135
- .btn {
136
- display: inline-flex;
137
- align-items: center;
138
- gap: 0.45rem;
139
- padding: 0.75rem 1.75rem; /* Nadia */
140
- border-radius: 100px;
141
- font-family: 'Nunito', sans-serif;
142
- font-size: 0.9rem;
143
- font-weight: 600; /* Nadia */
144
- letter-spacing: 0.02em; /* Nadia */
145
- text-decoration: none;
146
- border: none;
147
- cursor: pointer;
148
- transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease;
149
- }
150
- .btn-primary {
151
- background: var(--primary-dark); /* Avery: darkened for contrast */
152
- color: var(--white);
153
- box-shadow: 0 4px 22px rgba(58,114,101,0.28);
154
- }
155
- .btn-primary:hover {
156
- background: #2e5c50;
157
- transform: translateY(-2px);
158
- box-shadow: 0 10px 32px rgba(58,114,101,0.38);
159
- }
160
- .btn-amber {
161
- background: var(--amber-text); /* Avery: darkened amber for contrast */
162
- color: var(--white);
163
- box-shadow: 0 4px 22px rgba(158,92,40,0.28);
164
- }
165
- .btn-amber:hover {
166
- background: #844d22;
167
- transform: translateY(-2px);
168
- box-shadow: 0 10px 32px rgba(158,92,40,0.38);
169
- }
170
- .btn-ghost {
171
- background: transparent;
172
- color: var(--primary-dark);
173
- border: 2px solid rgba(58,114,101,0.45);
174
- }
175
- .btn-ghost:hover {
176
- background: var(--primary-dark);
177
- color: var(--white);
178
- border-color: var(--primary-dark);
179
- transform: translateY(-2px);
180
- }
181
-
182
- /* ============
183
- LANGUAGE TOGGLE (Uma + Nadia)
184
- ============ */
185
- .lang-toggle {
186
- display: inline-flex;
187
- align-items: center;
188
- gap: 0;
189
- border: 1.5px solid rgba(212,137,90,0.45);
190
- border-radius: 20px;
191
- overflow: hidden;
192
- font-family: 'Nunito', sans-serif;
193
- font-size: 0.75rem;
194
- font-weight: 700;
195
- letter-spacing: 0.04em;
196
- text-transform: uppercase;
197
- }
198
- .lang-toggle a {
199
- padding: 0.3rem 0.65rem;
200
- border: none;
201
- background: transparent;
202
- color: var(--amber-text); /* Avery: accessible color */
203
- cursor: pointer;
204
- transition: background 0.15s, color 0.15s;
205
- text-decoration: none;
206
- }
207
- .lang-toggle .active {
208
- background-color: var(--amber-text);
209
- color: #fff;
210
- }
211
- .lang-toggle .divider {
212
- width: 1px;
213
- height: 1.25rem;
214
- background: rgba(212,137,90,0.35);
215
- flex-shrink: 0;
216
- }
217
- .lang-toggle a:hover:not(.active) {
218
- background: rgba(212,137,90,0.1);
219
- }
220
-
221
- /* ============
222
- NAV
223
- ============ */
224
- nav {
225
- position: fixed;
226
- inset: 0 0 auto;
227
- z-index: 200;
228
- padding: 1.1rem 2.5rem;
229
- display: flex;
230
- align-items: center;
231
- justify-content: space-between;
232
- background: rgba(247,244,239,0.88);
233
- backdrop-filter: blur(14px);
234
- -webkit-backdrop-filter: blur(14px);
235
- border-bottom: 1px solid rgba(78,139,122,0.1);
236
- }
237
- .nav-left {
238
- display: flex;
239
- align-items: center;
240
- gap: 1.25rem;
241
- }
242
- .nav-brand {
243
- font-family: 'Cormorant Garamond', serif;
244
- font-size: 1.25rem;
245
- font-weight: 500;
246
- color: var(--primary-dark);
247
- text-decoration: none;
248
- letter-spacing: 0.03em;
249
- }
250
- .nav-links {
251
- list-style: none;
252
- display: flex;
253
- align-items: center;
254
- gap: 2.25rem;
255
- }
256
- .nav-links a {
257
- font-size: 0.8rem;
258
- font-weight: 600;
259
- letter-spacing: 0.1em;
260
- text-transform: uppercase;
261
- color: var(--text-light);
262
- text-decoration: none;
263
- transition: color 0.2s;
264
- }
265
- .nav-links a:hover { color: var(--primary-dark); }
266
- .nav-links .nav-pill {
267
- padding: 0.5rem 1.2rem;
268
- background: var(--primary-dark);
269
- color: var(--white) !important;
270
- border-radius: 100px;
271
- transition: background 0.2s, transform 0.2s;
272
- }
273
- .nav-links .nav-pill:hover {
274
- background: #2e5c50;
275
- transform: translateY(-1px);
276
- }
277
-
278
- /* ============
279
- HERO
280
- ============ */
281
- #hero {
282
- min-height: 100vh;
283
- display: flex;
284
- align-items: center;
285
- padding: 0;
286
- background: linear-gradient(155deg, var(--bg) 55%, #EAE2D6 100%);
287
- position: relative;
288
- overflow: hidden;
289
- }
290
- .hero-inner {
291
- max-width: 1100px;
292
- margin: 0 auto;
293
- padding: 8rem 2rem 5rem;
294
- display: grid;
295
- grid-template-columns: 1fr 1fr;
296
- gap: 3rem;
297
- align-items: center;
298
- width: 100%;
299
- }
300
- .hero-eyebrow {
301
- display: flex;
302
- align-items: center;
303
- gap: 0.75rem;
304
- font-size: 0.78rem;
305
- font-weight: 700;
306
- letter-spacing: 0.2em;
307
- text-transform: uppercase;
308
- color: var(--primary-dark);
309
- margin-bottom: 1.1rem;
310
- }
311
- .hero-eyebrow span { display: block; width: 2.2rem; height: 1.5px; background: var(--primary-dark); border-radius: 2px; }
312
- .hero-h1 {
313
- font-size: clamp(2.6rem, 5.5vw, 4.5rem);
314
- font-weight: 400;
315
- color: var(--text);
316
- margin-bottom: 1.1rem;
317
- line-height: 1.12; /* Nadia */
318
- letter-spacing: -0.01em; /* Nadia */
319
- }
320
- .hero-tagline {
321
- font-size: clamp(1.05rem, 2vw, 1.2rem);
322
- color: var(--text-mid);
323
- font-weight: 300;
324
- margin-bottom: 1.75rem;
325
- line-height: 1.7;
326
- max-width: 460px;
327
- }
328
-
329
- /* Uma: bilingual welcome block */
330
- .hero-bilingual {
331
- display: grid;
332
- grid-template-columns: 1fr 1px 1fr;
333
- gap: 1.25rem;
334
- align-items: start;
335
- margin: 1.5rem 0 2rem;
336
- padding: 1.25rem 0;
337
- border-top: 1px solid rgba(78,139,122,0.14);
338
- border-bottom: 1px solid rgba(78,139,122,0.14);
339
- }
340
- .hero-bilingual-col {
341
- font-size: 0.92rem;
342
- color: var(--text-mid);
343
- line-height: 1.72;
344
- font-style: italic;
345
- font-family: 'Cormorant Garamond', serif;
346
- font-size: 1.05rem;
347
- }
348
- .hero-bilingual-divider {
349
- width: 1px;
350
- background: rgba(78,139,122,0.22);
351
- align-self: stretch;
352
- min-height: 60px;
353
- }
354
-
355
- .hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
356
- .hero-note {
357
- font-size: 0.82rem;
358
- color: var(--text-light);
359
- margin-top: 1.25rem;
360
- }
361
- .hero-note em {
362
- font-style: italic;
363
- color: var(--primary-dark);
364
- }
365
-
366
- /* Hero illustration column */
367
- .hero-art {
368
- position: relative;
369
- display: flex;
370
- align-items: center;
371
- justify-content: center;
372
- min-height: 480px;
373
- }
374
- .hero-art-rings {
375
- position: absolute;
376
- inset: 0;
377
- display: flex;
378
- align-items: center;
379
- justify-content: center;
380
- pointer-events: none;
381
- }
382
- .hero-art-botanical { position: relative; z-index: 2; }
383
-
384
- /* Floating accent blobs */
385
- .blob { position: absolute; border-radius: 50%; pointer-events: none; }
386
-
387
- /* ============
388
- ABOUT
389
- ============ */
390
- #about {
391
- background: var(--white);
392
- position: relative;
393
- overflow: hidden;
394
- }
395
- #about::before {
396
- content: '';
397
- position: absolute;
398
- top: -3.5rem;
399
- left: -2%;
400
- width: 104%;
401
- height: 7rem;
402
- background: var(--bg);
403
- border-radius: 0 0 60% 60% / 0 0 100% 100%;
404
- }
405
- .about-inner {
406
- display: grid;
407
- grid-template-columns: 280px 1fr;
408
- gap: 5rem;
409
- align-items: center;
410
- }
411
- .about-photo-col {
412
- position: relative;
413
- display: flex;
414
- align-items: center;
415
- justify-content: center;
416
- flex-shrink: 0;
417
- }
418
- .about-circle {
419
- width: 280px;
420
- height: 280px;
421
- border-radius: 50%;
422
- overflow: hidden;
423
- background: linear-gradient(145deg, #CBE8E1, #AECFC8, #96BDB7);
424
- box-shadow: 0 24px 60px rgba(78,139,122,0.22);
425
- position: relative;
426
- z-index: 2;
427
- }
428
- .about-rings {
429
- position: absolute;
430
- top: 50%; left: 50%;
431
- transform: translate(-50%, -50%);
432
- z-index: 1;
433
- }
434
- .about-text .section-title { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 1.2rem; }
435
- .about-text p {
436
- color: var(--text-mid);
437
- line-height: 1.85;
438
- margin-bottom: 1rem;
439
- }
440
- .about-text p.lead {
441
- font-size: 1.15rem;
442
- color: var(--text);
443
- font-weight: 500;
444
- margin-bottom: 1.25rem;
445
- }
446
- /* Uma: bilingual aside in about */
447
- .about-spanish-aside {
448
- font-family: 'Cormorant Garamond', serif;
449
- font-size: 1.08rem;
450
- font-style: italic;
451
- color: var(--primary-dark);
452
- border-left: 2.5px solid rgba(78,139,122,0.3);
453
- padding: 0.5rem 0 0.5rem 1rem;
454
- margin: 1.25rem 0;
455
- line-height: 1.65;
456
- }
457
-
458
- /* ============
459
- SERVICES
460
- ============ */
461
- #services {
462
- background: var(--bg);
463
- position: relative;
464
- }
465
- .services-head { text-align: center; margin-bottom: 3.5rem; }
466
- .services-head .section-title { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 0.75rem; }
467
- .services-head p { color: var(--text-light); max-width: 500px; margin: 0 auto; }
468
-
469
- .services-grid {
470
- display: grid;
471
- grid-template-columns: repeat(3, 1fr);
472
- gap: 1.75rem;
473
- }
474
- .card {
475
- background: var(--white);
476
- border-radius: 2rem;
477
- padding: 2.4rem 2rem 2.25rem; /* Nadia: padding-bottom min 2.25rem */
478
- display: flex;
479
- flex-direction: column;
480
- gap: 1.1rem;
481
- border: 1px solid rgba(78,139,122,0.07);
482
- transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
483
- position: relative;
484
- overflow: hidden;
485
- }
486
- .card::after {
487
- content: '';
488
- position: absolute;
489
- bottom: 0; left: 0; right: 0;
490
- height: 3.5px;
491
- background: linear-gradient(90deg, var(--primary-dark), var(--periwinkle-text));
492
- transform: scaleX(0);
493
- transform-origin: left center;
494
- transition: transform 0.4s ease;
495
- border-radius: 0 0 2rem 2rem;
496
- }
497
- .card:hover { transform: translateY(-7px); box-shadow: 0 20px 52px rgba(44,44,48,0.09); border-color: rgba(78,139,122,0.18); }
498
- .card:hover::after { transform: scaleX(1); }
499
-
500
- .card-icon {
501
- width: 62px; height: 62px;
502
- border-radius: 50%;
503
- background: linear-gradient(140deg, #E8F4F1, #D0EBE4);
504
- display: flex; align-items: center; justify-content: center;
505
- flex-shrink: 0;
506
- }
507
- .card h3 { font-size: 1.42rem; font-weight: 500; }
508
- .card p {
509
- font-size: 0.9375rem; /* Nadia */
510
- line-height: 1.65; /* Nadia */
511
- color: var(--text-light);
512
- flex: 1;
513
- }
514
- .card-link {
515
- font-size: 0.84rem;
516
- font-weight: 700;
517
- color: var(--primary-dark); /* Avery: accessible */
518
- text-decoration: none;
519
- display: inline-flex;
520
- align-items: center;
521
- gap: 0.35rem;
522
- letter-spacing: 0.04em;
523
- transition: gap 0.2s;
524
- }
525
- .card-link:hover { gap: 0.65rem; }
526
-
527
- /* ============
528
- APPROACH / PULL QUOTE
529
- ============ */
530
- #approach {
531
- background: var(--periwinkle-bg);
532
- text-align: center;
533
- position: relative;
534
- overflow: hidden;
535
- }
536
- .approach-inner {
537
- max-width: 780px;
538
- margin: 0 auto;
539
- position: relative;
540
- z-index: 2;
541
- }
542
- .approach-ornament {
543
- font-family: 'Cormorant Garamond', serif;
544
- font-size: 9rem;
545
- line-height: 0.5;
546
- color: var(--periwinkle);
547
- opacity: 0.22;
548
- user-select: none;
549
- position: absolute;
550
- top: 0; left: -1rem;
551
- aria-hidden: true;
552
- }
553
- blockquote.pull {
554
- font-family: 'Cormorant Garamond', serif;
555
- font-size: clamp(1.55rem, 3.2vw, 2.2rem);
556
- font-weight: 400;
557
- font-style: italic;
558
- color: var(--text);
559
- line-height: 1.55;
560
- margin-bottom: 2rem;
561
- position: relative;
562
- }
563
- .approach-rule {
564
- display: flex;
565
- align-items: center;
566
- justify-content: center;
567
- gap: 1.1rem;
568
- font-size: 0.8rem;
569
- font-weight: 700;
570
- letter-spacing: 0.14em;
571
- text-transform: uppercase;
572
- color: var(--periwinkle-text); /* Avery */
573
- margin-bottom: 0;
574
- }
575
- .approach-rule::before, .approach-rule::after {
576
- content: '';
577
- display: block;
578
- width: 3.5rem;
579
- height: 1px;
580
- background: var(--periwinkle-text);
581
- opacity: 0.45;
582
- }
583
- .approach-ring {
584
- position: absolute;
585
- border-radius: 50%;
586
- border: 1px solid rgba(138,158,196,0.2);
587
- top: 50%; left: 50%;
588
- transform: translate(-50%, -50%);
589
- }
590
-
591
- /* ============
592
- PILLARS
593
- ============ */
594
- #pillars { background: var(--white); }
595
- .pillars-head { text-align: center; margin-bottom: 3.25rem; }
596
- .pillars-head .section-title { font-size: clamp(2rem, 4vw, 2.8rem); }
597
- .pillars-head p { color: var(--text-light); max-width: 520px; margin: 0 auto; }
598
-
599
- .pillars-grid {
600
- display: grid;
601
- grid-template-columns: repeat(3, 1fr);
602
- gap: 1.1rem;
603
- }
604
- .pillar {
605
- display: flex;
606
- align-items: flex-start;
607
- gap: 1rem;
608
- padding: 1.35rem 1.4rem;
609
- background: var(--bg);
610
- border-radius: 1.35rem;
611
- border: 1px solid rgba(78,139,122,0.08);
612
- transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
613
- }
614
- .pillar:hover {
615
- transform: translateY(-3px);
616
- box-shadow: 0 12px 34px rgba(78,139,122,0.09);
617
- background: #EDF5F2;
618
- }
619
- .pillar-icon {
620
- width: 42px; height: 42px;
621
- border-radius: 50%;
622
- flex-shrink: 0;
623
- display: flex; align-items: center; justify-content: center;
624
- }
625
- .pillar-name {
626
- font-family: 'Cormorant Garamond', serif;
627
- font-size: 1.18rem;
628
- font-weight: 500;
629
- color: var(--text);
630
- line-height: 1.15;
631
- }
632
- /* Uma: Spanish pillar sub-label */
633
- .pillar-name-es {
634
- font-family: 'Nunito', sans-serif;
635
- font-size: 0.72rem;
636
- font-weight: 600;
637
- color: var(--primary-dark);
638
- letter-spacing: 0.06em;
639
- text-transform: uppercase;
640
- margin-top: 0.1rem;
641
- display: block;
642
- }
643
- .pillar-desc {
644
- font-size: 0.8rem;
645
- color: var(--text-light);
646
- line-height: 1.55;
647
- margin-top: 0.25rem;
648
- }
649
-
650
- /* ============
651
- CONTACT
652
- ============ */
653
- #contact {
654
- background: linear-gradient(155deg, #2C3B38 0%, #1F2E2B 100%);
655
- text-align: center;
656
- position: relative;
657
- overflow: hidden;
658
- }
659
- .contact-inner {
660
- max-width: 620px;
661
- margin: 0 auto;
662
- position: relative;
663
- z-index: 2;
664
- }
665
- #contact .label { color: rgba(255,255,255,0.45); }
666
- #contact .section-title { color: var(--white); font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 1.25rem; }
667
- .contact-body {
668
- font-size: 1rem;
669
- color: rgba(255,255,255,0.62);
670
- line-height: 1.82;
671
- margin-bottom: 2.5rem;
672
- }
673
- .contact-form {
674
- text-align: left;
675
- display: flex;
676
- flex-direction: column;
677
- gap: 1.1rem;
678
- margin-bottom: 2rem;
679
- }
680
- .form-group { display: flex; flex-direction: column; gap: 0.35rem; }
681
- .form-group label {
682
- font-size: 0.8rem;
683
- font-weight: 600;
684
- letter-spacing: 0.06em;
685
- text-transform: uppercase;
686
- color: rgba(255,255,255,0.5);
687
- }
688
- .form-group input,
689
- .form-group textarea {
690
- background: rgba(255,255,255,0.07);
691
- border: 1px solid rgba(255,255,255,0.14);
692
- border-radius: 0.75rem;
693
- padding: 0.75rem 1rem;
694
- color: var(--white);
695
- font-family: 'Nunito', sans-serif;
696
- font-size: 0.95rem;
697
- transition: border-color 0.2s, background 0.2s;
698
- width: 100%;
699
- }
700
- .form-group input:focus,
701
- .form-group textarea:focus {
702
- border-color: rgba(78,139,122,0.55);
703
- background: rgba(255,255,255,0.1);
704
- outline: 3px solid #3A7265;
705
- outline-offset: 2px;
706
- }
707
- .form-group textarea { resize: vertical; min-height: 110px; }
708
- .form-feedback {
709
- font-size: 0.85rem;
710
- color: rgba(255,255,255,0.45);
711
- margin-top: -0.25rem;
712
- }
713
- .contact-note {
714
- font-size: 0.78rem;
715
- color: rgba(255,255,255,0.25);
716
- margin-top: 1.5rem;
717
- letter-spacing: 0.04em;
718
- }
719
- .contact-blob {
720
- position: absolute;
721
- border-radius: 50%;
722
- background: rgba(78,139,122,0.07);
723
- }
724
-
725
- /* ============
726
- FOOTER
727
- ============ */
728
- footer {
729
- background: var(--bg-darkest);
730
- padding: 2.75rem 2rem 2.25rem;
731
- text-align: center;
732
- border-top: 1px solid rgba(255,255,255,0.04);
733
- }
734
- .footer-mark { margin-bottom: 1rem; }
735
- .footer-name {
736
- font-family: 'Cormorant Garamond', serif;
737
- font-size: 1.15rem;
738
- font-weight: 400;
739
- color: rgba(255,255,255,0.65);
740
- letter-spacing: 0.06em;
741
- margin-bottom: 0.3rem;
742
- }
743
- .footer-tag {
744
- font-size: 0.82rem;
745
- font-style: italic;
746
- color: rgba(255,255,255,0.32);
747
- letter-spacing: 0.06em;
748
- }
749
- .footer-bilingual {
750
- font-size: 0.75rem;
751
- color: rgba(255,255,255,0.22);
752
- margin-top: 0.75rem;
753
- letter-spacing: 0.03em;
754
- }
755
- .footer-copy {
756
- margin-top: 1.5rem;
757
- font-size: 0.72rem;
758
- color: rgba(255,255,255,0.14);
759
- letter-spacing: 0.05em;
760
- }
761
-
762
- /* ============
763
- RESPONSIVE (Nadia + original)
764
- ============ */
765
- @media (max-width: 960px) {
766
- .hero-inner { grid-template-columns: 1fr; text-align: center; gap: 2rem; }
767
- .hero-eyebrow { justify-content: center; }
768
- .hero-tagline { margin-left: auto; margin-right: auto; }
769
- .hero-actions { justify-content: center; }
770
- .hero-note { text-align: center; }
771
- .hero-bilingual { grid-template-columns: 1fr; gap: 0.75rem; }
772
- .hero-bilingual-divider { display: none; }
773
- .hero-art { min-height: 320px; }
774
- .about-inner { grid-template-columns: 1fr; text-align: center; gap: 3rem; }
775
- .about-photo-col { justify-content: center; }
776
- .about-spanish-aside { text-align: left; }
777
- .services-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
778
- .pillars-grid { grid-template-columns: 1fr 1fr; }
779
- .nav-links { display: none; }
780
- }
781
-
782
- @media (max-width: 768px) {
783
- /* Nadia: mobile rules */
784
- body { font-size: 1rem; }
785
- section { padding-block: 2.75rem; }
786
- .btn {
787
- width: 100%;
788
- min-height: 48px;
789
- justify-content: center;
790
- }
791
- .hero-actions { flex-direction: column; }
792
- }
793
-
794
- @media (max-width: 640px) {
795
- .pillars-grid { grid-template-columns: 1fr; }
796
- .about-circle { width: 220px; height: 220px; }
797
- }
798
- </style>
799
- </head>
800
- <body>
801
-
802
- <!-- Skip link (Avery) -->
803
- <a href="#main-content" class="skip-link">Skip to main content</a>
804
-
805
- <!-- ═══════════════════════════════════════
806
- HEADER / NAV (Avery: role=banner)
807
- ═══════════════════════════════════════ -->
808
- <header role="banner">
809
- <nav aria-label="Main navigation">
810
- <div class="nav-left">
811
- <a href="#hero" class="nav-brand">Fidelia Psychology</a>
812
- <!-- Uma: language toggle pill -->
813
- <div class="lang-toggle" aria-label="Language selector / Selector de idioma">
814
- <a href="#" class="active" lang="en" aria-label="English version" onclick="setLang('en'); return false;">En</a>
815
- <span class="divider" aria-hidden="true"></span>
816
- <a href="#" lang="es" aria-label="Versión en español" onclick="setLang('es'); return false;">Es</a>
817
- </div>
818
- </div>
819
- <ul class="nav-links">
820
- <li><a href="#about" data-i18n="nav.about">About</a></li>
821
- <li><a href="#services" data-i18n="nav.services">Services</a></li>
822
- <li><a href="#approach" data-i18n="nav.approach">Approach</a></li>
823
- <li><a href="#pillars" data-i18n="nav.values">Our Values</a></li>
824
- <li><a href="#contact" class="nav-pill" data-i18n="nav.contact">Contact</a></li>
825
- </ul>
826
- </nav>
827
- </header>
828
-
829
- <main id="main-content">
830
-
831
- <!-- ═══════════════════════════════════════
832
- HERO
833
- ═══════════════════════════════════════ -->
834
- <section id="hero" aria-labelledby="hero-h1">
835
-
836
- <!-- Floating accent blobs -->
837
- <div class="blob" style="width:320px;height:320px;top:-80px;right:-60px;background:rgba(212,137,90,0.07);" aria-hidden="true"></div>
838
- <div class="blob" style="width:200px;height:200px;bottom:10%;left:-60px;background:rgba(138,158,196,0.09);" aria-hidden="true"></div>
839
- <div class="blob" style="width:100px;height:100px;top:25%;left:40%;background:rgba(78,139,122,0.06);" aria-hidden="true"></div>
840
-
841
- <div class="hero-inner">
842
- <!-- LEFT: copy -->
843
- <div class="hero-content">
844
- <!-- Felix: eyebrow -->
845
- <p class="hero-eyebrow"><span aria-hidden="true"></span> A place for every child to grow</p>
846
-
847
- <!-- Felix: H1 -->
848
- <h1 class="hero-h1" id="hero-h1" data-i18n="hero.h1">Where every child finds their footing.</h1>
849
-
850
- <!-- Felix: subheadline -->
851
- <p class="hero-tagline" data-i18n="hero.tagline">Gentle, personalized support for children and their families. We're here when you're ready.</p>
852
-
853
- <!-- Uma: bilingual welcome block -->
854
- <div class="hero-bilingual" aria-label="Bilingual welcome / Bienvenida bilingüe">
855
- <div class="hero-bilingual-col" lang="en">
856
- Every child deserves to feel seen, supported, and safe. We're here for your family — in the language you think in, the language you dream in, and the one you reach for when words are hardest to find.
857
- </div>
858
- <div class="hero-bilingual-divider" aria-hidden="true"></div>
859
- <div class="hero-bilingual-col" lang="es">
860
- Cada niño merece sentirse visto, acompañado y seguro. Estamos aquí para su familia — en el idioma con que piensa, con que sueña, y con el que busca palabras cuando más las necesita.
861
- </div>
862
- </div>
863
-
864
- <!-- Felix: CTA -->
865
- <div class="hero-actions">
866
- <a href="#contact" class="btn btn-primary" data-i18n="hero.cta.primary">Schedule a Conversation</a>
867
- <a href="#about" class="btn btn-ghost" data-i18n="hero.cta.ghost">Learn More</a>
868
- </div>
869
-
870
- <!-- Felix: note + Spanish -->
871
- <p class="hero-note">
872
- All sessions are confidential and private.<br>
873
- <em lang="es">Servicios disponibles en español.</em>
874
- </p>
875
- </div>
876
-
877
- <!-- RIGHT: botanical illustration -->
878
- <div class="hero-art" aria-hidden="true">
879
- <!-- Concentric rings -->
880
- <div class="hero-art-rings">
881
- <svg width="460" height="460" viewBox="0 0 460 460" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
882
- <circle cx="230" cy="230" r="90" stroke="#4E8B7A" stroke-width="1" opacity="0.14"/>
883
- <circle cx="230" cy="230" r="145" stroke="#4E8B7A" stroke-width="0.8" opacity="0.09"/>
884
- <circle cx="230" cy="230" r="195" stroke="#4E8B7A" stroke-width="0.7" opacity="0.06"/>
885
- <circle cx="230" cy="230" r="225" stroke="#4E8B7A" stroke-width="0.5" opacity="0.04"/>
886
- </svg>
887
- </div>
888
-
889
- <!-- Avery: hero botanical with title/desc -->
890
- <div class="hero-art-botanical">
891
- <svg width="320" height="440" viewBox="0 0 320 440" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="hero-svg-title hero-svg-desc">
892
- <title id="hero-svg-title">Botanical illustration</title>
893
- <desc id="hero-svg-desc">Delicate eucalyptus branches suggesting growth, calm, and care.</desc>
894
-
895
- <!-- Main stem -->
896
- <path d="M160 415 C158 370 155 330 158 280 C161 235 160 185 158 140 C156 100 158 65 157 30"
897
- stroke="#4E8B7A" stroke-width="2" stroke-linecap="round" fill="none"/>
898
-
899
- <!-- Leaves -->
900
- <path d="M159 295 C134 278 100 262 88 238 C104 252 137 268 159 295Z"
901
- stroke="#4E8B7A" stroke-width="1.5" fill="rgba(78,139,122,0.09)" stroke-linecap="round"/>
902
- <path d="M159 295 C148 278 130 265 118 252" stroke="#4E8B7A" stroke-width="0.7" stroke-linecap="round" fill="none" opacity="0.4"/>
903
- <path d="M159 270 C188 252 222 234 236 208 C218 226 186 244 159 270Z"
904
- stroke="#4E8B7A" stroke-width="1.5" fill="rgba(78,139,122,0.09)" stroke-linecap="round"/>
905
- <path d="M159 270 C172 254 190 242 202 228" stroke="#4E8B7A" stroke-width="0.7" stroke-linecap="round" fill="none" opacity="0.4"/>
906
- <path d="M158 220 C136 205 110 195 102 175 C116 188 140 200 158 220Z"
907
- stroke="#4E8B7A" stroke-width="1.3" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
908
- <path d="M159 202 C182 186 208 176 216 156 C202 170 180 183 159 202Z"
909
- stroke="#4E8B7A" stroke-width="1.3" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
910
- <path d="M158 155 C140 142 120 134 114 118 C124 130 143 139 158 155Z"
911
- stroke="#4E8B7A" stroke-width="1.2" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
912
- <path d="M158 142 C176 128 196 120 202 104 C192 116 175 126 158 142Z"
913
- stroke="#4E8B7A" stroke-width="1.2" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
914
- <path d="M157 100 C144 90 130 84 127 72 C133 81 146 88 157 100Z"
915
- stroke="#4E8B7A" stroke-width="1" fill="rgba(78,139,122,0.06)" stroke-linecap="round"/>
916
- <path d="M158 90 C170 80 184 74 188 62 C183 71 171 78 158 90Z"
917
- stroke="#4E8B7A" stroke-width="1" fill="rgba(78,139,122,0.06)" stroke-linecap="round"/>
918
-
919
- <!-- Side branches -->
920
- <path d="M159 330 C182 318 210 308 230 294" stroke="#4E8B7A" stroke-width="1.2" stroke-linecap="round" fill="none" opacity="0.65"/>
921
- <path d="M230 294 C242 284 256 277 262 263 C252 273 241 281 230 294Z"
922
- stroke="#4E8B7A" stroke-width="1" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
923
- <path d="M159 310 C138 300 114 292 98 279" stroke="#4E8B7A" stroke-width="1.2" stroke-linecap="round" fill="none" opacity="0.65"/>
924
- <path d="M98 279 C86 271 72 265 66 252 C76 261 87 268 98 279Z"
925
- stroke="#4E8B7A" stroke-width="1" fill="rgba(78,139,122,0.07)" stroke-linecap="round"/>
926
-
927
- <!-- Root system -->
928
- <path d="M158 415 C142 424 122 429 106 422" stroke="#4E8B7A" stroke-width="1.3" stroke-linecap="round" fill="none" opacity="0.38"/>
929
- <path d="M158 415 C174 426 196 431 212 425" stroke="#4E8B7A" stroke-width="1.3" stroke-linecap="round" fill="none" opacity="0.38"/>
930
- <path d="M158 415 C152 430 150 438 148 444" stroke="#4E8B7A" stroke-width="1" stroke-linecap="round" fill="none" opacity="0.25"/>
931
- <path d="M158 415 C164 431 167 439 170 445" stroke="#4E8B7A" stroke-width="1" stroke-linecap="round" fill="none" opacity="0.25"/>
932
- <path d="M106 422 C94 428 82 430 76 426" stroke="#4E8B7A" stroke-width="0.8" stroke-linecap="round" fill="none" opacity="0.22"/>
933
- <path d="M212 425 C224 431 236 432 244 427" stroke="#4E8B7A" stroke-width="0.8" stroke-linecap="round" fill="none" opacity="0.22"/>
934
-
935
- <!-- Apex blossom -->
936
- <circle cx="157" cy="28" r="18" stroke="#D4895A" stroke-width="1.5" fill="rgba(212,137,90,0.1)"/>
937
- <circle cx="157" cy="28" r="10" stroke="#D4895A" stroke-width="1.2" fill="rgba(212,137,90,0.18)"/>
938
- <circle cx="157" cy="28" r="4" fill="#D4895A" opacity="0.5"/>
939
-
940
- <!-- Accent dots -->
941
- <circle cx="88" cy="238" r="3.5" fill="rgba(212,137,90,0.4)"/>
942
- <circle cx="236" cy="208" r="3.5" fill="rgba(212,137,90,0.4)"/>
943
- <circle cx="114" cy="118" r="3" fill="rgba(138,158,196,0.55)"/>
944
- <circle cx="202" cy="104" r="3" fill="rgba(138,158,196,0.55)"/>
945
- <circle cx="262" cy="263" r="3" fill="rgba(138,158,196,0.45)"/>
946
- <circle cx="66" cy="252" r="3" fill="rgba(138,158,196,0.45)"/>
947
- <circle cx="127" cy="72" r="2.5" fill="rgba(212,137,90,0.3)"/>
948
- <circle cx="188" cy="62" r="2.5" fill="rgba(212,137,90,0.3)"/>
949
- </svg>
950
- </div>
951
- </div>
952
- </div>
953
- </section>
954
-
955
- <!-- Nadia: section ornament -->
956
- <div class="section-ornament" aria-hidden="true">• • •</div>
957
-
958
- <!-- ═══════════════════════════════════════
959
- ABOUT
960
- ═══════════════════════════════════════ -->
961
- <section id="about" aria-labelledby="about-h2">
962
-
963
- <!-- Subtle botanical in far corner -->
964
- <svg style="position:absolute;right:2%;top:18%;opacity:0.07;" width="120" height="200" viewBox="0 0 120 200" fill="none" aria-hidden="true" focusable="false">
965
- <path d="M60 195 C60 155 58 120 60 75 C62 50 60 25 59 5" stroke="#4E8B7A" stroke-width="2" stroke-linecap="round" fill="none"/>
966
- <path d="M60 130 C40 118 18 108 12 90 C24 104 44 114 60 130Z" stroke="#4E8B7A" stroke-width="1.5" fill="rgba(78,139,122,0.12)" stroke-linecap="round"/>
967
- <path d="M60 100 C80 88 102 78 108 60 C96 74 78 84 60 100Z" stroke="#4E8B7A" stroke-width="1.5" fill="rgba(78,139,122,0.12)" stroke-linecap="round"/>
968
- <circle cx="59" cy="5" r="10" stroke="#4E8B7A" stroke-width="1.5" fill="rgba(78,139,122,0.1)"/>
969
- </svg>
970
-
971
- <div class="container">
972
- <div class="about-inner">
973
-
974
- <!-- Photo column -->
975
- <div class="about-photo-col">
976
- <div class="about-rings" aria-hidden="true">
977
- <svg width="380" height="380" viewBox="0 0 380 380" fill="none" aria-hidden="true" focusable="false">
978
- <circle cx="190" cy="190" r="148" stroke="#4E8B7A" stroke-width="1.2" opacity="0.14"/>
979
- <circle cx="190" cy="190" r="170" stroke="#4E8B7A" stroke-width="0.8" opacity="0.08"/>
980
- <circle cx="190" cy="190" r="188" stroke="#4E8B7A" stroke-width="0.5" opacity="0.05"/>
981
- </svg>
982
- </div>
983
- <div class="about-circle">
984
- <svg width="280" height="280" viewBox="0 0 280 280" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Photo placeholder — botanical illustration">
985
- <ellipse cx="140" cy="200" rx="110" ry="80" fill="rgba(78,139,122,0.14)"/>
986
- <ellipse cx="140" cy="225" rx="85" ry="55" fill="rgba(78,139,122,0.11)"/>
987
- <path d="M140 260 C140 225 138 195 140 155 C142 130 140 105 139 80"
988
- stroke="#4E8B7A" stroke-width="1.6" stroke-linecap="round" fill="none" opacity="0.55"/>
989
- <path d="M140 205 C124 194 106 186 100 170 C110 180 128 190 140 205Z"
990
- stroke="#4E8B7A" stroke-width="1.2" fill="rgba(78,139,122,0.12)" stroke-linecap="round" opacity="0.8"/>
991
- <path d="M140 182 C156 171 174 163 180 147 C170 158 154 168 140 182Z"
992
- stroke="#4E8B7A" stroke-width="1.2" fill="rgba(78,139,122,0.12)" stroke-linecap="round" opacity="0.8"/>
993
- <circle cx="139" cy="78" r="13" stroke="#D4895A" stroke-width="1.4" fill="rgba(212,137,90,0.14)" opacity="0.85"/>
994
- <circle cx="139" cy="78" r="6.5" fill="rgba(212,137,90,0.28)"/>
995
- <text x="140" y="274" text-anchor="middle" font-family="'Nunito', sans-serif" font-size="9" fill="rgba(78,139,122,0.4)" letter-spacing="3" font-weight="600">YOUR PHOTO</text>
996
- </svg>
997
- </div>
998
- </div>
999
-
1000
- <!-- Text column -->
1001
- <div class="about-text">
1002
- <!-- Felix: About copy -->
1003
- <span class="label">About</span>
1004
- <h2 class="section-title" id="about-h2">A practice built on<br><em style="color:var(--primary-dark)">knowing the whole child.</em></h2>
1005
- <p class="lead">We believe every child makes sense — when you take the time to really listen.</p>
1006
- <p>We work with children and adolescents navigating anxiety, attention challenges, school stress, and the everyday weight of growing up. Our approach is gentle and research-informed, guided by nine values that shape every session. We meet each child where they are — not where we expect them to be.</p>
1007
- <p>We serve families of many backgrounds, and Dr. [Name] works fluently in both English and Spanish. If your family feels most at home in Spanish, you'll find that here too. Whatever you're carrying when you walk in, you don't have to explain yourself twice.</p>
1008
-
1009
- <!-- Uma: Spanish aside -->
1010
- <p class="about-spanish-aside" lang="es">
1011
- "Hablamos su idioma — y no solo el español. Entendemos la familia, la comunidad, y el corazón detrás de cada historia."
1012
- </p>
1013
-
1014
- <a href="#contact" class="btn btn-primary" style="align-self:flex-start;display:inline-flex;">Schedule a Conversation</a>
1015
- </div>
1016
- </div>
1017
- </div>
1018
- </section>
1019
-
1020
- <!-- Nadia: section ornament -->
1021
- <div class="section-ornament" aria-hidden="true">• • •</div>
1022
-
1023
- <!-- ═══════════════════════════════════════
1024
- SERVICES
1025
- ═══════════════════════════════════════ -->
1026
- <section id="services" aria-labelledby="services-h2">
1027
- <div class="container">
1028
- <div class="services-head">
1029
- <span class="label">What We Offer</span>
1030
- <!-- Felix: services heading -->
1031
- <h2 class="section-title" id="services-h2">Three ways we can help.</h2>
1032
- <p>Simple, focused services — shaped around your child, not a checklist.</p>
1033
- </div>
1034
-
1035
- <div class="services-grid">
1036
-
1037
- <!-- Card 1: Individual Therapy -->
1038
- <div class="card">
1039
- <div class="card-icon">
1040
- <svg width="30" height="30" viewBox="0 0 30 30" fill="none" aria-hidden="true" focusable="false">
1041
- <path d="M15 27 C15 19 13 11 15 3 C22 3 28 9 26 17 C24 23 20 27 15 27Z"
1042
- stroke="#3A7265" stroke-width="1.6" fill="rgba(78,139,122,0.1)" stroke-linecap="round" stroke-linejoin="round"/>
1043
- <path d="M15 27 C15 19 17.5 12 20 8" stroke="#3A7265" stroke-width="0.9" stroke-linecap="round" fill="none" opacity="0.45"/>
1044
- <path d="M15 21 C17.5 19 20.5 18 22 16" stroke="#3A7265" stroke-width="0.7" stroke-linecap="round" fill="none" opacity="0.35"/>
1045
- </svg>
1046
- </div>
1047
- <h3 data-i18n="svc1.title">Individual Therapy</h3>
1048
- <!-- Felix: card 1 copy -->
1049
- <p data-i18n="svc1.body">A private, steady space just for your child. We work through anxiety, big feelings, school stress, and whatever else they're carrying — at a pace that's right for them.</p>
1050
- <a href="#contact" class="card-link">Learn more <span aria-hidden="true">→</span></a>
1051
- </div>
1052
-
1053
- <!-- Card 2: School Consultation -->
1054
- <div class="card">
1055
- <div class="card-icon">
1056
- <svg width="30" height="30" viewBox="0 0 30 30" fill="none" aria-hidden="true" focusable="false">
1057
- <circle cx="15" cy="15" r="3.8" stroke="#3A7265" stroke-width="1.5" fill="rgba(78,139,122,0.1)"/>
1058
- <line x1="15" y1="11.2" x2="15" y2="4.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1059
- <line x1="15" y1="18.8" x2="15" y2="25.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1060
- <line x1="11.8" y1="13.2" x2="6.5" y2="9.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1061
- <line x1="18.2" y1="16.8" x2="23.5" y2="20.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1062
- <line x1="11.8" y1="16.8" x2="6.5" y2="20.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1063
- <line x1="18.2" y1="13.2" x2="23.5" y2="9.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1064
- <circle cx="15" cy="4" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1065
- <circle cx="15" cy="26" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1066
- <circle cx="5.5" cy="9" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1067
- <circle cx="24.5" cy="21" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1068
- <circle cx="5.5" cy="21" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1069
- <circle cx="24.5" cy="9" r="2" stroke="#3A7265" stroke-width="1" fill="rgba(138,158,196,0.25)"/>
1070
- </svg>
1071
- </div>
1072
- <h3 data-i18n="svc2.title">School Consultation</h3>
1073
- <!-- Felix: card 2 copy -->
1074
- <p data-i18n="svc2.body">When home and school feel like two different worlds, we help build a bridge. We work with teachers and school teams so your child is supported wherever they spend their day.</p>
1075
- <a href="#contact" class="card-link">Learn more <span aria-hidden="true">→</span></a>
1076
- </div>
1077
-
1078
- <!-- Card 3: Family Support -->
1079
- <div class="card">
1080
- <div class="card-icon">
1081
- <svg width="30" height="30" viewBox="0 0 30 30" fill="none" aria-hidden="true" focusable="false">
1082
- <circle cx="15" cy="15" r="4" stroke="#3A7265" stroke-width="1.6" fill="rgba(78,139,122,0.18)"/>
1083
- <circle cx="15" cy="15" r="8.5" stroke="#3A7265" stroke-width="1.2" fill="none" stroke-dasharray="2.5 2.2"/>
1084
- <circle cx="15" cy="15" r="13" stroke="#3A7265" stroke-width="0.9" fill="none" opacity="0.38"/>
1085
- <circle cx="15" cy="6.5" r="1.6" fill="#9E5C28" opacity="0.65"/>
1086
- <circle cx="22.4" cy="19.5" r="1.6" fill="#9E5C28" opacity="0.65"/>
1087
- <circle cx="7.6" cy="19.5" r="1.6" fill="#9E5C28" opacity="0.65"/>
1088
- </svg>
1089
- </div>
1090
- <h3 data-i18n="svc3.title">Family Support</h3>
1091
- <!-- Felix: card 3 copy -->
1092
- <p data-i18n="svc3.body">When a child is struggling, the whole family feels it. We work with parents and caregivers too — giving you the tools and perspective to move through it together.</p>
1093
- <a href="#contact" class="card-link">Learn more <span aria-hidden="true">→</span></a>
1094
- </div>
1095
-
1096
- </div>
1097
- </div>
1098
- </section>
1099
-
1100
- <!-- Nadia: section ornament -->
1101
- <div class="section-ornament" aria-hidden="true">• • •</div>
1102
-
1103
- <!-- ═══════════════════════════════════════
1104
- APPROACH / PULL QUOTE
1105
- ═══════════════════════════════════════ -->
1106
- <section id="approach" aria-labelledby="approach-label">
1107
-
1108
- <!-- Background rings -->
1109
- <div class="approach-ring" style="width:500px;height:500px;" aria-hidden="true"></div>
1110
- <div class="approach-ring" style="width:700px;height:700px;opacity:0.55;" aria-hidden="true"></div>
1111
- <div class="approach-ring" style="width:900px;height:900px;opacity:0.3;" aria-hidden="true"></div>
1112
-
1113
- <!-- Botanical accents -->
1114
- <svg style="position:absolute;left:4%;top:8%;opacity:0.2;" width="70" height="150" viewBox="0 0 70 150" fill="none" aria-hidden="true" focusable="false">
1115
- <path d="M35 145 C35 112 33 84 35 50 C37 30 35 12 34 2" stroke="#8A9EC4" stroke-width="1.6" stroke-linecap="round" fill="none"/>
1116
- <path d="M35 100 C22 90 8 82 5 68 C13 78 26 87 35 100Z" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)" stroke-linecap="round"/>
1117
- <path d="M35 78 C48 68 62 60 65 46 C58 57 46 66 35 78Z" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)" stroke-linecap="round"/>
1118
- <path d="M34 52 C24 44 14 38 11 26 C18 36 26 42 34 52Z" stroke="#8A9EC4" stroke-width="1.1" fill="rgba(138,158,196,0.12)" stroke-linecap="round"/>
1119
- <circle cx="34" cy="2" r="8" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)"/>
1120
- <circle cx="34" cy="2" r="3.5" fill="rgba(138,158,196,0.3)"/>
1121
- </svg>
1122
- <svg style="position:absolute;right:4%;bottom:8%;opacity:0.2;transform:scaleX(-1) rotate(10deg);" width="70" height="150" viewBox="0 0 70 150" fill="none" aria-hidden="true" focusable="false">
1123
- <path d="M35 145 C35 112 33 84 35 50 C37 30 35 12 34 2" stroke="#8A9EC4" stroke-width="1.6" stroke-linecap="round" fill="none"/>
1124
- <path d="M35 100 C22 90 8 82 5 68 C13 78 26 87 35 100Z" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)" stroke-linecap="round"/>
1125
- <path d="M35 78 C48 68 62 60 65 46 C58 57 46 66 35 78Z" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)" stroke-linecap="round"/>
1126
- <circle cx="34" cy="2" r="8" stroke="#8A9EC4" stroke-width="1.3" fill="rgba(138,158,196,0.15)"/>
1127
- </svg>
1128
-
1129
- <div class="approach-inner container">
1130
- <div style="position:relative;">
1131
- <span class="approach-ornament" aria-hidden="true">"</span>
1132
-
1133
- <!-- Felix: pull quote -->
1134
- <blockquote class="pull" aria-labelledby="approach-label">
1135
- <span data-i18n="approach.quote">"We don't rush what takes time. We just stay — patient, present, and steady — until the ground feels solid again."</span>
1136
- </blockquote>
1137
-
1138
- <p class="approach-rule" id="approach-label">The Fidelia Approach</p>
1139
- </div>
1140
- </div>
1141
- </section>
1142
-
1143
- <!-- Nadia: section ornament -->
1144
- <div class="section-ornament" aria-hidden="true">• • •</div>
1145
-
1146
- <!-- ═══════════════════════════════════════
1147
- PILLARS
1148
- ═══════════════════════════════════════ -->
1149
- <section id="pillars" aria-labelledby="pillars-h2">
1150
- <div class="container">
1151
- <div class="pillars-head">
1152
- <!-- Felix: pillars label + heading + intro -->
1153
- <span class="label">Our Foundation</span>
1154
- <h2 class="section-title" id="pillars-h2">Nine ways we show up for you.</h2>
1155
- <p>These are the values that guide every session, every conversation, every relationship we build.</p>
1156
- </div>
1157
-
1158
- <div class="pillars-grid">
1159
-
1160
- <!-- Love / Amor -->
1161
- <div class="pillar">
1162
- <div class="pillar-icon" style="background:rgba(212,137,90,0.14);">
1163
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1164
- <path d="M11 18 C11 18 3 13.2 3 7.8 C3 5.2 5 3.5 7.5 3.5 C9 3.5 10.2 4.2 11 5.2 C11.8 4.2 13 3.5 14.5 3.5 C17 3.5 19 5.2 19 7.8 C19 13.2 11 18 11 18Z" stroke="#9E5C28" stroke-width="1.5" fill="rgba(212,137,90,0.12)" stroke-linejoin="round"/>
1165
- </svg>
1166
- </div>
1167
- <div class="pillar-text">
1168
- <div class="pillar-name">Love</div>
1169
- <!-- Uma: Spanish label -->
1170
- <span class="pillar-name-es" lang="es">Amor</span>
1171
- <!-- Felix: pillar description -->
1172
- <div class="pillar-desc" data-i18n="pillar.love.body">Every child who walks through our door is a person worth knowing, not a problem to fix.</div>
1173
- </div>
1174
- </div>
1175
-
1176
- <!-- Joy / Alegría -->
1177
- <div class="pillar">
1178
- <div class="pillar-icon" style="background:rgba(138,158,196,0.16);">
1179
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1180
- <circle cx="11" cy="11" r="7.5" stroke="#4A6396" stroke-width="1.5" fill="rgba(138,158,196,0.1)"/>
1181
- <path d="M7.5 13 C8.5 14.8 10 15.8 11 15.8 C12 15.8 13.5 14.8 14.5 13" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" fill="none"/>
1182
- <circle cx="8.5" cy="9.5" r="1.1" fill="#4A6396" opacity="0.7"/>
1183
- <circle cx="13.5" cy="9.5" r="1.1" fill="#4A6396" opacity="0.7"/>
1184
- </svg>
1185
- </div>
1186
- <div class="pillar-text">
1187
- <div class="pillar-name">Joy</div>
1188
- <span class="pillar-name-es" lang="es">Alegría</span>
1189
- <div class="pillar-desc" data-i18n="pillar.joy.body">We notice the small wins and celebrate them. Even the hard work can hold moments of lightness.</div>
1190
- </div>
1191
- </div>
1192
-
1193
- <!-- Peace / Paz -->
1194
- <div class="pillar">
1195
- <div class="pillar-icon" style="background:rgba(78,139,122,0.13);">
1196
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1197
- <circle cx="11" cy="11" r="7.5" stroke="#3A7265" stroke-width="1.5" fill="rgba(78,139,122,0.08)"/>
1198
- <line x1="11" y1="3.5" x2="11" y2="18.5" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1199
- <line x1="11" y1="11" x2="4.5" y2="15" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1200
- <line x1="11" y1="11" x2="17.5" y2="15" stroke="#3A7265" stroke-width="1.2" stroke-linecap="round"/>
1201
- </svg>
1202
- </div>
1203
- <div class="pillar-text">
1204
- <div class="pillar-name">Peace</div>
1205
- <span class="pillar-name-es" lang="es">Paz</span>
1206
- <div class="pillar-desc" data-i18n="pillar.peace.body">Our sessions are slow, quiet, and free from pressure. A calm place in a busy world.</div>
1207
- </div>
1208
- </div>
1209
-
1210
- <!-- Patience / Paciencia -->
1211
- <div class="pillar">
1212
- <div class="pillar-icon" style="background:rgba(212,137,90,0.14);">
1213
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1214
- <circle cx="11" cy="11" r="7.5" stroke="#9E5C28" stroke-width="1.4" fill="rgba(212,137,90,0.1)"/>
1215
- <path d="M11 5.5 L11 11 L14.5 13.5" stroke="#9E5C28" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
1216
- </svg>
1217
- </div>
1218
- <div class="pillar-text">
1219
- <div class="pillar-name">Patience</div>
1220
- <span class="pillar-name-es" lang="es">Paciencia</span>
1221
- <div class="pillar-desc" data-i18n="pillar.patience.body">We don't rush healing. We hold the pace each child needs, for as long as it takes.</div>
1222
- </div>
1223
- </div>
1224
-
1225
- <!-- Kindness / Bondad -->
1226
- <div class="pillar">
1227
- <div class="pillar-icon" style="background:rgba(138,158,196,0.16);">
1228
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1229
- <path d="M8.5 18 C7 17 5 15 5 12 L5 7.5 C5 7 5.5 6.5 6 6.5 C6.5 6.5 7 7 7 7.5" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
1230
- <path d="M7 11 L7 5.5 C7 5 7.5 4.5 8 4.5 C8.5 4.5 9 5 9 5.5 L9 10" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" fill="none"/>
1231
- <path d="M9 10 L9 5.5 C9 5 9.5 4.5 10 4.5 C10.5 4.5 11 5 11 5.5 L11 10" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" fill="none"/>
1232
- <path d="M11 10 L11 6 C11 5.5 11.5 5 12 5 C12.5 5 13 5.5 13 6 L13 12" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" fill="none"/>
1233
- <path d="M13 12 C14 12 16 13 16 15 C16 17 14.5 18 13 18 L8.5 18" stroke="#4A6396" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
1234
- </svg>
1235
- </div>
1236
- <div class="pillar-text">
1237
- <div class="pillar-name">Kindness</div>
1238
- <span class="pillar-name-es" lang="es">Bondad</span>
1239
- <div class="pillar-desc" data-i18n="pillar.kindness.body">Warmth isn't something we turn on for sessions. It's just how we are with your family, always.</div>
1240
- </div>
1241
- </div>
1242
-
1243
- <!-- Goodness / El Bien -->
1244
- <div class="pillar">
1245
- <div class="pillar-icon" style="background:rgba(78,139,122,0.13);">
1246
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1247
- <path d="M11 19 C11 13 9 7 11 3 C16 3 19.5 7 18 13 C17 17 14 19 11 19Z" stroke="#3A7265" stroke-width="1.5" fill="rgba(78,139,122,0.12)" stroke-linecap="round"/>
1248
- <path d="M11 19 C12 14 14 9 16 6" stroke="#3A7265" stroke-width="0.9" stroke-linecap="round" fill="none" opacity="0.4"/>
1249
- <circle cx="8" cy="8.5" r="1.2" fill="#9E5C28" opacity="0.5"/>
1250
- </svg>
1251
- </div>
1252
- <div class="pillar-text">
1253
- <div class="pillar-name">Goodness</div>
1254
- <span class="pillar-name-es" lang="es">El Bien</span>
1255
- <div class="pillar-desc" data-i18n="pillar.goodness.body">We're honest about what we know and what we don't. Your child's wellbeing is the only guide.</div>
1256
- </div>
1257
- </div>
1258
-
1259
- <!-- Faithfulness / Fidelidad -->
1260
- <div class="pillar">
1261
- <div class="pillar-icon" style="background:rgba(212,137,90,0.14);">
1262
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1263
- <circle cx="11" cy="7" r="3.5" stroke="#9E5C28" stroke-width="1.4" fill="rgba(212,137,90,0.12)"/>
1264
- <line x1="11" y1="10.5" x2="11" y2="17" stroke="#9E5C28" stroke-width="1.4" stroke-linecap="round"/>
1265
- <path d="M7 14 C8.2 15.8 9.8 17 11 17 C12.2 17 13.8 15.8 15 14" stroke="#9E5C28" stroke-width="1.3" stroke-linecap="round" fill="none"/>
1266
- </svg>
1267
- </div>
1268
- <div class="pillar-text">
1269
- <div class="pillar-name">Faithfulness</div>
1270
- <span class="pillar-name-es" lang="es">Fidelidad</span>
1271
- <div class="pillar-desc" data-i18n="pillar.faithfulness.body">We show up — through the setbacks, the slow climbs, the hard weeks. Every time.</div>
1272
- </div>
1273
- </div>
1274
-
1275
- <!-- Gentleness / Ternura -->
1276
- <div class="pillar">
1277
- <div class="pillar-icon" style="background:rgba(138,158,196,0.16);">
1278
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1279
- <path d="M6 18 C9 15 12 12 14 6 C17 6 19 8 18 12 C17 15 14 17 11 18 C9.5 18.5 7.5 18.5 6 18Z" stroke="#4A6396" stroke-width="1.4" fill="rgba(138,158,196,0.12)" stroke-linejoin="round"/>
1280
- <path d="M6 18 C8 16 10 14 12 10" stroke="#4A6396" stroke-width="1" stroke-linecap="round" fill="none" opacity="0.5"/>
1281
- </svg>
1282
- </div>
1283
- <div class="pillar-text">
1284
- <div class="pillar-name">Gentleness</div>
1285
- <span class="pillar-name-es" lang="es">Ternura</span>
1286
- <div class="pillar-desc" data-i18n="pillar.gentleness.body">Hard things get talked about here. We hold those moments carefully, and never push harder than a child is ready for.</div>
1287
- </div>
1288
- </div>
1289
-
1290
- <!-- Self-Control / Templanza -->
1291
- <div class="pillar">
1292
- <div class="pillar-icon" style="background:rgba(78,139,122,0.13);">
1293
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true" focusable="false">
1294
- <path d="M11 4 C7 4 4 7.1 4 11" stroke="#3A7265" stroke-width="1.5" stroke-linecap="round" fill="none"/>
1295
- <path d="M11 4 C15 4 18 7.1 18 11" stroke="#3A7265" stroke-width="1.5" stroke-linecap="round" fill="none" opacity="0.5"/>
1296
- <circle cx="11" cy="11" r="3.5" stroke="#3A7265" stroke-width="1.4" fill="rgba(78,139,122,0.12)"/>
1297
- <line x1="11" y1="14.5" x2="11" y2="18.5" stroke="#3A7265" stroke-width="1.3" stroke-linecap="round"/>
1298
- <line x1="8.5" y1="18.5" x2="13.5" y2="18.5" stroke="#3A7265" stroke-width="1.3" stroke-linecap="round"/>
1299
- </svg>
1300
- </div>
1301
- <div class="pillar-text">
1302
- <div class="pillar-name">Self-Control</div>
1303
- <span class="pillar-name-es" lang="es">Templanza</span>
1304
- <div class="pillar-desc" data-i18n="pillar.selfcontrol.body">We help children build steadiness from the inside out — skills they'll carry long after our work together is done.</div>
1305
- </div>
1306
- </div>
1307
-
1308
- </div><!-- /pillars-grid -->
1309
- </div><!-- /container -->
1310
- </section>
1311
-
1312
- <!-- Nadia: section ornament -->
1313
- <div class="section-ornament" aria-hidden="true">• • •</div>
1314
-
1315
- <!-- ═══════════════════════════════════════
1316
- CONTACT
1317
- ═══════════════════════════════════════ -->
1318
- <section id="contact" aria-labelledby="contact-h2">
1319
-
1320
- <div class="contact-blob" style="width:350px;height:350px;top:-80px;right:-80px;" aria-hidden="true"></div>
1321
- <div class="contact-blob" style="width:200px;height:200px;bottom:-50px;left:-40px;background:rgba(138,158,196,0.06);" aria-hidden="true"></div>
1322
-
1323
- <svg style="position:absolute;left:5%;bottom:12%;opacity:0.12;" width="80" height="160" viewBox="0 0 80 160" fill="none" aria-hidden="true" focusable="false">
1324
- <path d="M40 155 C40 120 38 88 40 52 C42 32 40 14 39 2" stroke="white" stroke-width="2" stroke-linecap="round" fill="none"/>
1325
- <path d="M40 110 C25 98 8 88 5 72 C14 84 28 94 40 110Z" stroke="white" stroke-width="1.5" fill="rgba(255,255,255,0.08)" stroke-linecap="round"/>
1326
- <path d="M40 85 C55 73 72 63 75 47 C66 60 54 70 40 85Z" stroke="white" stroke-width="1.5" fill="rgba(255,255,255,0.08)" stroke-linecap="round"/>
1327
- <path d="M39 58 C27 48 14 40 11 26 C18 36 28 44 39 58Z" stroke="white" stroke-width="1.2" fill="rgba(255,255,255,0.07)" stroke-linecap="round"/>
1328
- <circle cx="39" cy="2" r="11" stroke="white" stroke-width="1.5" fill="rgba(255,255,255,0.08)"/>
1329
- <circle cx="39" cy="2" r="5" fill="rgba(255,255,255,0.14)"/>
1330
- </svg>
1331
-
1332
- <div class="contact-inner container">
1333
- <span class="label">Get In Touch</span>
1334
- <!-- Felix: contact heading + copy -->
1335
- <h2 class="section-title" id="contact-h2" data-i18n="contact.h2">Let's talk.</h2>
1336
- <p class="contact-body" data-i18n="contact.body">
1337
- You don't have to have everything figured out. Just reach out — we'll take it from there. We respond within one business day.
1338
- </p>
1339
-
1340
- <!-- Avery: contact form with labels, aria-required, live feedback -->
1341
- <form class="contact-form" action="#" method="post" novalidate aria-label="Contact form">
1342
- <div class="form-group">
1343
- <label for="contact-name">Your Name <span aria-hidden="true">*</span></label>
1344
- <input type="text" id="contact-name" name="name" placeholder="First and last name" aria-required="true" autocomplete="name">
1345
- </div>
1346
- <div class="form-group">
1347
- <label for="contact-email">Email Address <span aria-hidden="true">*</span></label>
1348
- <input type="email" id="contact-email" name="email" placeholder="you@example.com" aria-required="true" autocomplete="email">
1349
- </div>
1350
- <div class="form-group">
1351
- <label for="contact-phone">Phone Number <span style="font-weight:400;text-transform:none;letter-spacing:0;">(optional)</span></label>
1352
- <input type="tel" id="contact-phone" name="phone" placeholder="(555) 000-0000" autocomplete="tel">
1353
- </div>
1354
- <div class="form-group">
1355
- <label for="contact-message">How can we help? <span aria-hidden="true">*</span></label>
1356
- <textarea id="contact-message" name="message" placeholder="Tell us a little about your family and what you're looking for — no pressure to have everything figured out." aria-required="true"></textarea>
1357
- </div>
1358
- <!-- Avery: live status feedback -->
1359
- <div role="status" aria-live="polite" class="form-feedback" id="form-status"></div>
1360
- <!-- Felix: CTA -->
1361
- <button type="submit" class="btn btn-amber" style="align-self:flex-start;">
1362
- Send a Message
1363
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true" style="margin-left:2px;"><path d="M2 7h10M8 3l4 4-4 4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
1364
- </button>
1365
- </form>
1366
-
1367
- <p class="contact-note">We respond within one business day &nbsp;·&nbsp; All initial consultations are free &amp; confidential</p>
1368
- </div>
1369
- </section>
1370
-
1371
- </main><!-- /main#main-content -->
1372
-
1373
-
1374
- <!-- ═══════════════════════════════════════
1375
- FOOTER (Avery: role=contentinfo)
1376
- ═══════════════════════════════════════ -->
1377
- <footer role="contentinfo">
1378
- <div class="footer-mark" aria-hidden="true">
1379
- <svg width="32" height="52" viewBox="0 0 32 52" fill="none" aria-hidden="true" focusable="false" style="display:block;margin:0 auto 0.9rem;">
1380
- <path d="M16 50 C16 38 15 28 16 16 C17 9 16 3 15 0" stroke="rgba(255,255,255,0.22)" stroke-width="1.5" stroke-linecap="round" fill="none"/>
1381
- <path d="M16 35 C10 30 3 26 2 19 C7 24 12 28 16 35Z" stroke="rgba(255,255,255,0.18)" stroke-width="1.1" fill="rgba(255,255,255,0.05)" stroke-linecap="round"/>
1382
- <path d="M16 25 C22 20 29 16 30 9 C25 14 20 20 16 25Z" stroke="rgba(255,255,255,0.18)" stroke-width="1.1" fill="rgba(255,255,255,0.05)" stroke-linecap="round"/>
1383
- <circle cx="15" cy="0" r="5" stroke="rgba(255,255,255,0.2)" stroke-width="1.2" fill="rgba(255,255,255,0.07)"/>
1384
- </svg>
1385
- </div>
1386
- <p class="footer-name">Fidelia Psychology</p>
1387
- <!-- Morgan: footer tagline -->
1388
- <p class="footer-tag">Steady ground for growing minds.</p>
1389
- <!-- Morgan + Uma: bilingual note -->
1390
- <p class="footer-bilingual">
1391
- Fidelia Psychology proudly offers services in English and Spanish.
1392
- · <span lang="es">Servicios disponibles en inglés y español.</span>
1393
- </p>
1394
-
1395
- <!-- Avery: address tag for contact details -->
1396
- <address style="font-style:normal;margin-top:1rem;">
1397
- <a href="mailto:hello@fideliapsychology.com" style="color:rgba(255,255,255,0.28);font-size:0.78rem;text-decoration:none;">hello@fideliapsychology.com</a>
1398
- </address>
1399
-
1400
- <p class="footer-copy">&copy; 2025 Fidelia Psychology &nbsp;·&nbsp; All rights reserved &nbsp;·&nbsp; Placeholder — name to be confirmed</p>
1401
- </footer>
1402
-
1403
- <script>
1404
- // ─── Fidelia Psychology — Bilingual Toggle ───────────────────────────────────
1405
- // Translations keyed by data-i18n attribute on elements.
1406
- // Usage: <element data-i18n="key"> English text </element>
1407
- // Spanish overrides are defined in TRANSLATIONS.es below.
1408
-
1409
- const TRANSLATIONS = {
1410
- en: {
1411
- // Nav
1412
- "nav.about": "About",
1413
- "nav.services": "Services",
1414
- "nav.approach": "Approach",
1415
- "nav.values": "Our Values",
1416
- "nav.contact": "Contact",
1417
- "nav.cta": "Schedule a Consultation",
1418
-
1419
- // Hero
1420
- "hero.eyebrow": "A place for every child to grow",
1421
- "hero.h1": "Where every child finds their footing.",
1422
- "hero.tagline": "Gentle, personalized support for children and their families. We're here when you're ready.",
1423
- "hero.cta.primary": "Schedule a Conversation",
1424
- "hero.cta.ghost": "Learn More",
1425
- "hero.note": "All sessions are confidential and private.",
1426
- "hero.note.es": "Servicios disponibles en español.",
1427
-
1428
- // Bilingual welcome block
1429
- "hero.bilingual.en": "Every child deserves to feel seen, supported, and safe. We're here for your family — in the language you think in, the language you dream in, and the one you reach for when words are hardest to find.",
1430
- "hero.bilingual.es": "Cada niño merece sentirse visto, acompañado y seguro. Estamos aquí para su familia — en el idioma con que piensa, con que sueña, y con el que busca palabras cuando más las necesita.",
1431
-
1432
- // About
1433
- "about.label": "About",
1434
- "about.h2": "A practice built on knowing the whole child.",
1435
- "about.lead": "We believe every child makes sense — when you take the time to really listen.",
1436
- "about.p1": "We work with children and adolescents navigating anxiety, attention challenges, school stress, and the everyday weight of growing up. Our approach is gentle and research-informed, guided by nine values that shape every session. We meet each child where they are — not where we expect them to be.",
1437
- "about.p2": "We serve families of many backgrounds, and Dr. [Name] works fluently in both English and Spanish. If your family feels most at home in Spanish, you'll find that here too. Whatever you're carrying when you walk in, you don't have to explain yourself twice.",
1438
- "about.aside": "\"Hablamos su idioma — y no solo el español. Entendemos la familia, la comunidad, y el corazón detrás de cada historia.\"",
1439
-
1440
- // Services
1441
- "services.label": "What We Offer",
1442
- "services.h2": "Three ways we can help.",
1443
- "services.intro": "Simple, focused services — shaped around your child, not a checklist.",
1444
- "svc1.title": "Individual Therapy",
1445
- "svc1.body": "A private, steady space just for your child. We work through anxiety, big feelings, school stress, and whatever else they're carrying — at a pace that's right for them.",
1446
- "svc2.title": "School Consultation",
1447
- "svc2.body": "When home and school feel like two different worlds, we help build a bridge. We work with teachers and school teams so your child is supported wherever they spend their day.",
1448
- "svc3.title": "Family Support",
1449
- "svc3.body": "When a child is struggling, the whole family feels it. We work with parents and caregivers too — giving you the tools and perspective to move through it together.",
1450
-
1451
- // Approach
1452
- "approach.quote": "\"We don't rush what takes time. We just stay — patient, present, and steady — until the ground feels solid again.\"",
1453
-
1454
- // Pillars
1455
- "pillars.label": "Our Foundation",
1456
- "pillars.h2": "Nine ways we show up for you.",
1457
- "pillars.intro": "These are the values that guide every session, every conversation, every relationship we build.",
1458
- "pillar.love.body": "Every child who walks through our door is a person worth knowing, not a problem to fix.",
1459
- "pillar.joy.body": "We notice the small wins and celebrate them. Even the hard work can hold moments of lightness.",
1460
- "pillar.peace.body": "Our sessions are slow, quiet, and free from pressure. A calm place in a busy world.",
1461
- "pillar.patience.body": "We don't rush healing. We hold the pace each child needs, for as long as it takes.",
1462
- "pillar.kindness.body": "Warmth isn't something we turn on for sessions. It's just how we are with your family, always.",
1463
- "pillar.goodness.body": "We're honest about what we know and what we don't. Your child's wellbeing is the only guide.",
1464
- "pillar.faithfulness.body":"We show up — through the setbacks, the slow climbs, the hard weeks. Every time.",
1465
- "pillar.gentleness.body": "Hard things get talked about here. We hold those moments carefully, and never push harder than a child is ready for.",
1466
- "pillar.selfcontrol.body": "We help children build steadiness from the inside out — skills they'll carry long after our work together is done.",
1467
-
1468
- // Contact
1469
- "contact.h2": "Let's talk.",
1470
- "contact.body": "You don't have to have everything figured out. Just reach out — we'll take it from there. We respond within one business day.",
1471
- "contact.cta": "Send a Message",
1472
- "contact.name.label": "Full Name",
1473
- "contact.email.label": "Email Address",
1474
- "contact.message.label": "Message",
1475
-
1476
- // Footer
1477
- "footer.tagline": "Steady ground for growing minds.",
1478
- "footer.bilingual": "Fidelia Psychology proudly offers services in English and Spanish. · Servicios disponibles en inglés y español.",
1479
- },
1480
-
1481
- es: {
1482
- // Nav
1483
- "nav.about": "Nosotros",
1484
- "nav.services": "Servicios",
1485
- "nav.approach": "Enfoque",
1486
- "nav.values": "Nuestros Valores",
1487
- "nav.contact": "Contacto",
1488
- "nav.cta": "Agendar una Consulta",
1489
-
1490
- // Hero
1491
- "hero.eyebrow": "Práctica Privada de Psicología · Atención para Niños y Familias",
1492
- "hero.h1": "Aquí tiene su lugar.",
1493
- "hero.tagline": "Fidelia Psychology ofrece apoyo personalizado y cálido para niños y familias — de donde vengan, lo que carguen, en el idioma que más se sientan en casa.",
1494
- "hero.cta.primary": "Conversemos",
1495
- "hero.cta.ghost": "Conózcanos",
1496
- "hero.note": "Todas las sesiones son confidenciales. Atendemos familias con o sin seguro médico.",
1497
- "hero.note.es": "Servicios disponibles en inglés y español.",
1498
-
1499
- // Bilingual welcome block (in ES mode, show Spanish prominently)
1500
- "hero.bilingual.en": "Every child deserves to feel seen, supported, and safe. We're here for your family — in the language you think in, the language you dream in, and the one you reach for when words are hardest to find.",
1501
- "hero.bilingual.es": "Cada niño merece sentirse visto, acompañado y seguro. Estamos aquí para su familia — en el idioma con que piensa, con que sueña, y con el que busca palabras cuando más las necesita.",
1502
-
1503
- // About
1504
- "about.label": "Nuestra Práctica",
1505
- "about.h2": "Con raíces en el cuidado. Abiertos a todos.",
1506
- "about.lead": "Fidelia Psychology nació de una convicción simple: que cada niño, en cada familia, merece sentirse comprendido.",
1507
- "about.p1": "Trabajamos con niños y adolescentes que enfrentan ansiedad, dificultades de atención, estrés escolar y las presiones cotidianas de crecer. Nuestro enfoque es gentil y basado en evidencia — guiado por nueve valores fundamentales que orientan cada sesión, cada conversación y cada relación que construimos con las familias. No creemos en soluciones de talla única.",
1508
- "about.p2": "Nuestra práctica atiende a familias de todos los orígenes — culturas, idiomas, estructuras e historias distintas. La Dra. [Nombre] conduce sesiones tanto en inglés como en español, porque el apoyo real significa acompañarle en el idioma donde se siente más usted mismo. Si está comenzando a hacerse preguntas o lleva tiempo buscando el lugar indicado, aquí encontrará un espacio cálido y sin prisas.",
1509
- "about.aside": "\"Hablamos su idioma — y no solo el español. Entendemos la familia, la comunidad, y el corazón detrás de cada historia.\"",
1510
-
1511
- // Services
1512
- "services.label": "Lo Que Ofrecemos",
1513
- "services.h2": "Apoyo a la medida de su familia.",
1514
- "services.intro": "Cada niño es diferente. Cada familia es diferente. Nuestros servicios se adaptan a ustedes.",
1515
- "svc1.title": "Terapia Individual",
1516
- "svc1.body": "Para niños y adolescentes que necesitan un espacio completamente propio. Trabajamos la ansiedad, la regulación emocional, la identidad, la presión escolar y más — con enfoques adaptados a la edad, personalidad y necesidades de cada niño. El progreso se ve diferente en cada caso, y seguimos su ritmo.",
1517
- "svc2.title": "Consultoría Escolar",
1518
- "svc2.body": "Tendemos puentes entre el hogar y la escuela. Trabajamos con maestros, orientadores y administradores para crear entornos donde los niños puedan aprender y prosperar. Ya sea que un niño necesite adaptaciones, un plan de comportamiento o simplemente una mejor comprensión por parte de los adultos a su alrededor — ayudamos a traducir lo clínico en lo práctico.",
1519
- "svc3.title": "Apoyo Familiar",
1520
- "svc3.body": "Las familias son sistemas, y cuando una parte sufre, todos lo sienten. Ofrecemos orientación y sesiones para padres y cuidadores que navegan los desafíos de sus hijos — brindando herramientas, lenguaje y perspectiva para que toda la familia avance junta.",
1521
-
1522
- // Approach
1523
- "approach.quote": "\"El crecimiento no ocurre según un horario. Nuestro trabajo es aparecer — con paciencia, con presencia y con la profunda convicción de que cada niño ya lleva consigo todo lo que necesita para florecer.\"",
1524
-
1525
- // Pillars
1526
- "pillars.label": "Sobre Lo Que Nos Sostenemos",
1527
- "pillars.h2": "Nueve valores. Una práctica.",
1528
- "pillars.intro": "Estos no son ideales que colgamos en una pared — son los principios que dan forma a cada interacción, cada sesión y cada relación en Fidelia.",
1529
- "pillar.love.body": "Nos acercamos a cada niño y familia con cuidado genuino — no como casos a resolver, sino como personas que merecen ser conocidas.",
1530
- "pillar.joy.body": "Celebramos el progreso en todas sus formas, desde los pequeños avances hasta los grandes, y hacemos espacio para la ligereza incluso en las temporadas difíciles.",
1531
- "pillar.peace.body": "Nuestras sesiones son tranquilas, sin prisa y libres de juicio — un ancla silenciosa en lo que a veces puede sentirse como un mundo muy ruidoso.",
1532
- "pillar.patience.body": "No aceleramos la sanación. Confiamos en el proceso, mantenemos el ritmo que cada niño necesita y nunca avanzamos más rápido de lo que es correcto.",
1533
- "pillar.kindness.body": "Cada familia recibe calidez — desde el primer contacto hasta la última sesión — porque cómo tratamos a las personas es inseparable de la ayuda que ofrecemos.",
1534
- "pillar.goodness.body": "Actuamos con integridad: honestos sobre lo que sabemos, transparentes sobre lo que no, y siempre guiados por lo que es genuinamente mejor para su hijo.",
1535
- "pillar.faithfulness.body":"Nos presentamos, consistentemente, para cada familia con la que trabajamos — a través de los tramos difíciles, los retrocesos y las subidas lentas.",
1536
- "pillar.gentleness.body": "Las conversaciones difíciles suceden aquí. Las sostenemos con cuidado, sin forzar nunca, y siempre honrando el ritmo y la comodidad del niño frente a nosotros.",
1537
- "pillar.selfcontrol.body": "Modelamos la estabilidad emocional, enseñamos habilidades de regulación que duran toda la vida y ayudamos a los niños a construir los recursos internos para navegar lo que venga.",
1538
-
1539
- // Contact
1540
- "contact.h2": "¿Listo para dar el primer paso?",
1541
- "contact.body": "Comunicarse es la parte más difícil — todo lo que sigue lo hacemos fácil. Complete el formulario o envíenos un mensaje, y nos pondremos en contacto dentro de un día hábil para encontrar un horario que funcione para su familia.",
1542
- "contact.cta": "Escríbanos",
1543
- "contact.name.label": "Nombre Completo",
1544
- "contact.email.label": "Correo Electrónico",
1545
- "contact.message.label": "Mensaje",
1546
-
1547
- // Footer
1548
- "footer.tagline": "Terreno firme para mentes en crecimiento.",
1549
- "footer.bilingual": "Fidelia Psychology ofrece servicios en inglés y español. · Fidelia Psychology offers services in English and Spanish.",
1550
- }
1551
- };
1552
-
1553
- // ─── Apply translations to the DOM ──────────────────────────────────────────
1554
- function applyTranslations(lang) {
1555
- const t = TRANSLATIONS[lang];
1556
- if (!t) return;
1557
- document.querySelectorAll('[data-i18n]').forEach(el => {
1558
- const key = el.dataset.i18n;
1559
- if (t[key] !== undefined) el.innerHTML = t[key];
1560
- });
1561
- // Update html lang attribute
1562
- document.documentElement.lang = lang;
1563
- // Update bilingual block emphasis
1564
- const enCol = document.querySelector('.hero-bilingual-col[lang="en"]');
1565
- const esCol = document.querySelector('.hero-bilingual-col[lang="es"]');
1566
- if (enCol && esCol) {
1567
- enCol.style.opacity = lang === 'en' ? '1' : '0.55';
1568
- esCol.style.opacity = lang === 'es' ? '1' : '0.55';
1569
- enCol.style.fontStyle = lang === 'en' ? 'italic' : 'normal';
1570
- esCol.style.fontStyle = lang === 'es' ? 'italic' : 'normal';
1571
- }
1572
- }
1573
-
1574
- // ─── Toggle handler ──────────────────────────────────────────────────────────
1575
- function setLang(lang) {
1576
- // Update active state on toggle pills
1577
- document.querySelectorAll('.lang-toggle a').forEach(a => {
1578
- a.classList.toggle('active', a.getAttribute('lang') === lang);
1579
- });
1580
- applyTranslations(lang);
1581
- // Persist choice
1582
- try { localStorage.setItem('fidelia-lang', lang); } catch(e) {}
1583
- }
1584
-
1585
- // ─── Init on load ────────────────────────────────────────────────────────────
1586
- (function init() {
1587
- // Restore saved preference or default to 'en'
1588
- let saved = 'en';
1589
- try { saved = localStorage.getItem('fidelia-lang') || 'en'; } catch(e) {}
1590
- setLang(saved);
1591
- })();
1592
- </script>
1593
- </body>
1594
- </html>