Compare commits

...

11 commits

Author SHA1 Message Date
Tolaria
e9be8cb636 merge: resolve index.html conflict, take remote regenerated zensical build 2026-06-03 16:44:45 +08:00
Tolaria
50c5fa340e feat: theme refinements, contributing guide, captcha, new content sections
- Enlarge header logo (3.2rem) and hide site name via extra.css
- Darken link color (#4a8262) and green-to-sage table header gradient
- Add contributing/ section with leaf captcha email reveal
- Move markdown.md to contributing/; theming.md stays root (unpublished)
- Add practices/ and teachings/ content sections
- Update zensical.toml config
2026-06-03 16:19:15 +08:00
Tolaria
07ad1d4772 Premium interactive homepage: animated borders, beacons block, nature image 2026-06-03 12:58:13 +08:00
Tolaria
b074845b9c Homepage beauty upgrade: refined hero, divider, contribution card, reveal classes 2026-06-03 12:42:46 +08:00
Tolaria
658802994d Checkpoint: iridescent theme upgrade + docs index redesign 2026-06-03 12:40:32 +08:00
Tolaria
134d50afe8 Add about page 2026-06-03 12:12:30 +08:00
Tolaria
89bfc647d0 Update index.md: hero + invitation + contribution guidance 2026-06-03 12:11:29 +08:00
Tolaria
b9dda6802a Checkpoint: nature palette, toolbar fix, hero placeholder 2026-06-03 12:07:53 +08:00
Tolaria
99ab200398 Update 2026-06-02 17:14:55 +08:00
Tolaria
a76feb616d Update index 2026-06-02 17:07:24 +08:00
aja
3eecf94da8 test build 2026-06-02 16:54:12 +08:00
28 changed files with 1771 additions and 159 deletions

View file

@ -0,0 +1,36 @@
# Homepage Beauty Upgrade — Kimi Task
## MANDATORY INPUT
Read first: `/home/a/w/up/docs/zensical-theme-plan.md`
## Verified constraints (do not violate)
- `zensical.toml` is correct and must not be modified.
- Source homepage is `docs/index.md`.
- Theme entrypoint is `docs/stylesheets/extra.css`.
- JS layer is `docs/javascripts/extra.js`.
- Override dir is `overrides/`, but prior full-page overrides caused broken builds. Do NOT replace full templates.
- Toolbar/code-block icons must remain usable and legible.
- Output must be additive, reversible, and contributor-safe.
## Goal
Make the homepage much more beautiful using the documented theme prompt, adapted for Zensical.
Focus on the homepage (`docs/index.md` + `docs/stylesheets/extra.css`).
Keep the consciousness/awakening tone and multi-contributor friendly structure.
## Requirements
- Fancier typography system, spacing, and front-page composition.
- More polished hero treatment and lead paragraph.
- Beautiful list and CTA styling.
- Additive changes only to CSS/JS and markup classes.
- Preserve all behavior helpers (reduced motion, scroll reveal, cursor glow opt-in).
- Include a short review summary of every changed file.
## Do NOT
- Edit `zensical.toml`.
- Add template overrides without explicit confirmation.
- Import heavy frameworks or dependencies.
## Deliverable
- Exact files changed
- Short diff summary
- Preview/review instructions

View file

@ -0,0 +1,37 @@
# Premium Interactive Homepage — Kimi Task
## Read first
- `/home/a/w/up/docs/zensical-theme-plan.md`
## Hard constraints
- Do NOT edit `zensical.toml`
- Do NOT replace full templates in `overrides/` — prior full-page overrides broke the build
- Keep toolbar/code-block icons legible
- Keep reduced-motion safe
- Keep JS small and contributor-safe
## Goal
Add a more premium interactive feel to the homepage.
Tone: futuristic + nature-themed, calm consciousness/awakening vibe.
## Required additions
1. Animated borders and shadows:
- Gentle iridescent/pastel animated borders on hero and contribution card
- Soft moving shadow/glow effects, not harsh glows
- Use CSS keyframes, respect `prefers-reduced-motion: reduce`
2. More homepage elements:
- Add 23 small content blocks with nice styling, simple class names, easy for contributors to edit
- Keep markdown-friendly
3. Images/media:
- Add optimized image placeholders or nature-themed image blocks
- If video is included, make it lazy-load and optional (no autoplay, no heavy bundle)
4. Overrides:
- If you need template changes, use SMALL additive partials only
- Do NOT add a full `main.html` or `footer.html` override
5. CTA refinement:
- Make the contribution section feel more inviting with subtle hover micro-animations
## Deliverable
- Exact files changed
- Short diff summary
- Review/preview instructions

9
about/index.md Normal file
View file

@ -0,0 +1,9 @@
# About this space
_This is a living archive for reigniting the spark within._
Multiple voices are welcome here. Not a performance of awareness, but a practice of it.
- Share what calls to you
- Add notes, reflections, or small practices
- Let contributions grow the whole garden gently

Binary file not shown.

View file

@ -0,0 +1,93 @@
# Content Production Playbook — Consciousness Garden
## Purpose
Turn a topic list into organized, rich Zensical docs for the awakening/consciousness site.
This document is the reusable task brief for any future content-writing run.
---
## 1. Inputs required
- Topic list (title + one-line intent per topic)
- Desired folder hierarchy preference:
- `docs/practices/` — guided practices
- `docs/teachings/` — longer essays, frameworks
- `docs/experiences/` — community stories, experiences
- `docs/reference/` — glossaries, diagrams, maps
- `docs/about/` — already exists; keep site meta here
---
## 2. Research workflow
For each topic:
1. Run a short Firecrawl/parallel-cli research pass to pull 24 high-quality references.
2. Favor primary sources, short readable articles, and non-copyright-restricted diagrams.
3. If the topic is technical or structural, prefer diagrammatic explanation.
---
## 3. Content standards
- **Tone**: calm, grounded, inviting — not performative spirituality.
- **Length**: 300900 words per page unless the topic clearly demands more.
- **Structure per post**:
- 13 sentence intro hook
- 36 body sections with headings
- 1 closing reflection or practice prompt
- 1 related link into another page in the same hierarchy
- **Accessibility**: readable line length, alt text on images, reduced-motion safe animations.
---
## 4. Zensical features to use
- Admonitions: `!!! note`, `!!! warning`
- Collapsibles: `???` for optional depth
- Code/math only when genuinely clarifying a model or practice
- Mermaid diagrams: flowcharts, mindmaps, or journey maps when a concept benefits from visual structure
- `markdown="1"` for figures/hero-style images
- Keep internal links relative to `docs/` paths
---
## 5. Images & media
- Prefer lightweight PNG/SVG or optimized JPEG.
- If video is added:
- Use a poster image
- Do not autoplay
- Prefer HTML5 `<video controls preload="none">`
- For diagrams:
- Mermaid first
- If Mermaid is unsuitable, generate a simple SVG and embed it
---
## 6. Hierarchy rules
- Keep the tree shallow wherever possible: prefer `docs/practices/grounding.md` over deep nesting.
- Add an `index.md` to each section folder only if it adds navigational value.
- Avoid duplicate topics — search `docs/` with ripgrep before creating a new page.
---
## 7. Linking policy
- Every new page should link to:
- 1 nearby related page
- 1 higher-level hub or index if available
- Use human-readable anchor text.
- Do not create orphan pages.
---
## 8. Review checklist
- [ ] Build succeeds with `./.venv/bin/zensical build`
- [ ] Images render at reasonable size
- [ ] Internal links resolve in `site/search.json`
- [ ] Tone consistent with existing homepage
- [ ] No broken anchors in markdown
- [ ] Reduced-motion styles remain intact
---
## 9. Output convention
When producing posts from this playbook, return:
1. New file paths and folder tree
2. 13 sentence rationale for hierarchy choice per page
3. List of new internal links created
4. Any generated assets (`docs/assets/images/*`, `docs/assets/diagrams/*`)

View file

@ -0,0 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600" preserveAspectRatio="xMidYMid slice">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#e6f2ea"/>
<stop offset="50%" stop-color="#f1f0f5"/>
<stop offset="100%" stop-color="#f4efe9"/>
</linearGradient>
<linearGradient id="leaf1" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#aec6b5"/>
<stop offset="100%" stop-color="#d1d8db"/>
</linearGradient>
<linearGradient id="leaf2" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#cdf0d8"/>
<stop offset="100%" stop-color="#e5e3f0"/>
</linearGradient>
<radialGradient id="glow" cx="50%" cy="45%" r="40%">
<stop offset="0%" stop-color="rgba(220,230,210,0.65)"/>
<stop offset="100%" stop-color="rgba(255,255,255,0)"/>
</radialGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="4"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.55"/>
</feComponentTransfer>
</filter>
</defs>
<rect width="1200" height="600" fill="url(#bg)"/>
<rect width="1200" height="600" fill="url(#glow)"/>
<g opacity="0.7">
<ellipse cx="320" cy="210" rx="110" ry="36" fill="url(#leaf1)" transform="rotate(-26, 320, 210)"/>
<ellipse cx="370" cy="225" rx="100" ry="30" fill="url(#leaf2)" transform="rotate(-8, 370, 225)"/>
<ellipse cx="390" cy="240" rx="90" ry="28" fill="url(#leaf1)" transform="rotate(14, 390, 240)"/>
<ellipse cx="350" cy="250" rx="103" ry="31" fill="url(#leaf2)" transform="rotate(35, 350, 250)"/>
<ellipse cx="320" cy="270" rx="94" ry="28" fill="url(#leaf1)" transform="rotate(60, 320, 270)"/>
</g>
<g opacity="0.85">
<ellipse cx="780" cy="300" rx="90" ry="26" fill="url(#leaf2)" transform="rotate(-18, 780, 300)"/>
<ellipse cx="820" cy="310" rx="82" ry="24" fill="url(#leaf1)" transform="rotate(2, 820, 310)"/>
<ellipse cx="830" cy="325" rx="68" ry="22" fill="url(#leaf2)" transform="rotate(22, 830, 325)"/>
<ellipse cx="810" cy="335" rx="78" ry="22" fill="url(#leaf1)" transform="rotate(40, 810, 335)"/>
</g>
<g filter="url(#soft)" opacity="0.25">
<circle cx="180" cy="540" r="120" fill="#d9f0dd"/>
<circle cx="1120" cy="520" r="150" fill="#ece1f5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,27 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1536" preserveAspectRatio="none" style="display: block;" version="1.1" viewBox="0 0 2688 1536" width="2688">
<path d="M 2095.28 936.902 C 2090.72 939.306 2084.13 944.562 2079.31 947.606 C 2063.06 957.822 2044.75 964.305 2025.69 966.588 C 1943.06 976.981 1897.7 896.058 1892.41 822.745 C 1884.95 719.391 1999.78 576.691 2104.92 662.166 C 2111.45 667.472 2114.97 685.353 2127.33 683.12 C 2128.62 680.758 2128.57 676.988 2127.69 674.568 C 2124.76 666.486 2125.77 653.688 2125.81 644.619 L 2126.1 590.506 C 2126.17 579.746 2126.77 565.525 2125.09 555.243 C 2123.98 548.379 2117.82 532.715 2111.4 529.029 C 2106.32 526.114 2100.47 523.88 2095.19 520.307 C 2094.75 517.296 2095.01 517.256 2096.2 514.538 C 2097.92 513.26 2113.27 507.748 2115.71 507.34 C 2125.91 505.634 2177.11 482.604 2183.03 485.291 C 2186.08 491.513 2184.19 865.766 2184.38 897.1 C 2190.06 903.584 2189.77 904.6 2189.48 913.324 C 2198.32 921.213 2206.05 925.47 2218.03 922.585 C 2222.94 925.02 2224.09 923.721 2228.77 925.829 C 2222.21 931.739 2214.24 933.688 2205.92 936.313 C 2183.83 943.282 2148.4 961.588 2126.5 964.588 L 2125.61 962.713 L 2126.2 961.219 C 2126.45 960.559 2126.68 959.889 2126.96 959.241 C 2129.96 952.323 2129.29 919.743 2129.27 909.905 C 2126.57 906.903 2127.32 907.828 2122.77 906.551 C 2123.94 905.669 2125.27 906.324 2125.9 905.36 C 2122.13 894.933 2124.44 895.557 2124.08 884.69 C 2132.36 868.618 2128.3 825.155 2129.01 805.634 C 2129.65 788.121 2128.52 767.469 2127.88 749.841 C 2126.97 740.176 2123.47 730.381 2120.84 721.177 C 2114.1 697.523 2093.91 670.198 2072.28 658.727 C 2037.83 640.462 1992.06 646.999 1970.47 681.582 C 1969.27 683.511 1963.95 686.513 1962.86 689.074 C 1956.53 701.752 1952.18 715.376 1946.48 728.321 C 1945.07 731.51 1946.91 741.505 1944.96 747.675 C 1939.5 764.932 1940.03 788.269 1945.96 805.397 C 1946.55 807.505 1945.54 819.607 1946.1 820.801 C 1950.87 830.87 1953.73 845.952 1958.24 855.36 C 1976.75 893.99 2007.39 936.149 2054.22 937.841 C 2063.84 938.188 2080.85 936.333 2088.07 929.276 C 2088.3 929.051 2089.81 926.434 2090.09 925.961 C 2099.54 927.388 2095.75 926.694 2095.28 936.902 z" fill="rgb(131,126,172)" transform="translate(0,0)"></path>
<path d="M 1014.12 636.244 C 1055.56 634.057 1087.4 646.861 1115.62 677.724 C 1127.96 691.211 1130.17 702.282 1139.51 717.139 C 1139.1 716.484 1140.09 725.782 1140.19 726.446 C 1147.15 733.883 1143.94 741.092 1145.99 750.693 C 1147.2 756.373 1151.83 761.842 1149.62 766.475 C 1140.45 770.439 1125.35 767.545 1117.01 768.314 C 1095.64 770.283 930.825 764.285 923.524 772.733 C 918.238 807.382 937.74 856.986 960.397 882.091 C 969.969 892.696 984.187 906.824 997.439 912.644 C 1035.55 929.385 1083.26 926.266 1113.05 894.863 C 1118.36 889.293 1122.34 880.515 1127.15 875.83 C 1132.8 870.194 1131.82 862.616 1139.3 856.367 C 1144.95 855.192 1147.34 856.259 1148.8 862.342 C 1138.13 887.796 1131.8 906.168 1112.28 927.111 C 1052.52 991.224 943.87 975.985 898.403 902.399 C 894.121 895.469 885.79 874.599 882.954 871.933 L 882.465 871.481 C 879.221 857.014 877.284 846.242 875.508 831.532 C 873.957 818.684 868.554 812.233 873.487 797.487 C 875.706 790.854 875.927 780.339 877.814 773.255 C 881.281 760.505 881.406 753.196 886.885 740.964 C 907.696 694.507 946.387 649.35 998.617 639.438 C 1004.02 638.411 1007.72 638.46 1013.1 636.603 L 1014.12 636.244 z M 1007.75 756.371 C 1021.03 756.425 1075.95 758.316 1084.5 753.546 C 1086.08 749.397 1082.56 742.647 1082.16 738.505 C 1080.63 723.042 1083.79 709.692 1073.1 696.627 C 1070.51 693.475 1070.32 690.412 1070.03 686.262 C 1051.56 661.136 1036.75 644.784 1002.54 649.193 C 971.754 657.312 960.536 668.552 942.828 696.349 C 937.787 704.262 935.767 715.145 930.003 719.933 C 927.735 726.762 931.09 729.67 928.173 737.032 C 925.956 742.626 923.139 748.62 924.685 754.509 C 927.184 757.061 928.72 757.489 932.866 757.338 C 957.666 756.432 983.075 756.991 1007.75 756.371 z" fill="rgb(18,89,59)" transform="translate(0,0)"></path>
<path d="M 1440.93 879.704 C 1440.44 880.138 1433.89 896.928 1433.11 899.035 C 1428.4 900.947 1426.89 905.912 1424.19 910.115 C 1399.49 948.89 1356.48 967.681 1311.74 967.333 C 1225.88 966.665 1175.71 892.877 1171.19 813.832 C 1170.34 799.086 1174.59 782.642 1176.37 768.021 C 1177.63 757.761 1186.97 751.589 1186.38 741.031 C 1186.21 737.877 1191.17 730.884 1192.44 727.896 C 1209.92 694.25 1240.38 661.325 1274.26 646.527 C 1351.11 612.963 1435.25 662.865 1445.09 744.786 C 1445.84 751.013 1450.66 756.04 1449.77 764.262 C 1448.63 766.315 1448.61 766.784 1446.23 767.435 C 1435.58 770.348 1414.06 768.318 1402.44 768.3 C 1381.2 768.268 1235.07 766.071 1223.75 771.416 C 1222.89 771.824 1222.56 772.477 1222.4 773.455 C 1221.48 779.05 1223.05 812.235 1225.72 816.252 C 1229.9 822.541 1230.11 829.797 1232.77 836.89 C 1240.75 858.197 1256.7 882.341 1274.27 897.154 C 1295.92 915.399 1324.53 925.389 1353.07 922.592 C 1382.84 919.674 1404.6 905.403 1422.17 881.93 C 1426.3 876.404 1429.16 870.42 1433.58 865.087 C 1436.46 865.624 1436.41 866.305 1436 869.491 C 1434.84 878.333 1440.88 871.951 1440.71 877.855 C 1440.78 878.472 1440.86 879.088 1440.93 879.704 z M 1224.06 739.691 C 1223.89 744.326 1223.28 751.033 1224.45 755.284 C 1227.78 757.601 1299.56 756.158 1310.75 756.128 C 1324.48 756.188 1338.22 756.336 1351.95 756.572 C 1363.21 756.783 1375.76 758.45 1386.02 753.665 C 1384.55 705.783 1360.01 639.784 1300.65 649.106 C 1272.93 657.837 1256.79 671.751 1241.72 697.622 C 1238.79 702.654 1240.02 704.891 1234.76 708.431 C 1232.48 716.936 1229.14 733.37 1224.06 739.691 z" fill="rgb(18,89,59)" transform="translate(0,0)"></path>
<path d="M 545.228 590.075 C 548.241 586.48 550.872 584.912 553.622 581.631 C 555.312 579.614 554.877 574.918 557.154 572.73 L 558.195 573.491 C 559.84 585.626 558.937 632.448 558.807 646.507 C 580.371 646.406 608.387 647.025 629.198 645.042 C 631.95 647.678 632.641 657.089 630.96 660.628 C 623.501 666.682 575.632 660.879 564.613 663.644 C 559.889 664.83 562.286 692.042 562.286 696.399 L 562.151 766.033 L 562.072 843.775 C 561.997 858.322 561.343 876.734 562.851 890.965 C 563.221 894.453 572.608 914.943 574.883 916.969 C 586.812 927.59 619.544 928.732 629.889 916.714 C 632.491 917.305 635.835 918.25 638.306 916.728 C 639.091 916.244 640.256 914.945 641.274 915.417 C 642.52 915.995 641.956 919.341 641.936 920.167 C 637.543 924.267 637.831 925.253 637.185 931.147 C 636.21 931.36 636.155 931.632 635.496 932.616 C 607.64 974.808 533.331 982.521 512.534 929.947 C 500.448 899.391 503.653 860.988 503.576 828.31 L 503.302 696.68 C 503.302 690.615 504.5 667.649 501.974 663.968 C 490.664 657.522 466.201 669.036 458.472 659.651 C 459.863 653.213 466.864 651.735 472.507 649.906 C 495.498 642.454 515.475 627.814 532.202 610.634 C 535.683 607.058 544.992 594.639 545.228 590.075 z" fill="rgb(18,89,59)" transform="translate(0,0)"></path>
<path d="M 1638.77 691.109 C 1643.26 688.318 1644.22 684.683 1647.68 680.855 C 1677.17 648.184 1722.51 631.006 1766.26 636.54 C 1786.6 639.113 1806.63 650.193 1818.95 666.809 C 1823.33 672.712 1828.89 681.811 1831.83 688.697 C 1832.84 691.071 1832 696.358 1832.42 699.41 C 1832.99 703.563 1836.84 709.431 1837.11 713.224 C 1838.27 729.834 1837.89 747.721 1837.89 764.386 L 1837.89 851.351 C 1837.89 867.416 1837.41 886.861 1838.44 902.754 C 1846.88 912.467 1838.83 911.658 1850.34 920.497 C 1854.92 921.206 1859.13 921.865 1863.67 922.824 L 1864.89 922.295 C 1874.87 917.865 1880.77 909.132 1888.8 909.22 L 1890.62 910.419 C 1891.79 919.35 1861.02 954.489 1851.05 959.268 C 1843.91 961.767 1842.18 964.418 1832.36 966.036 C 1821.52 967.823 1811.24 966.962 1801.94 960.725 C 1792.77 954.576 1781.1 935.453 1781.44 924.455 C 1781.62 918.824 1782.72 909.643 1782.34 904.062 C 1782.03 899.579 1775.38 903.199 1770.55 900.503 L 1772.99 901.584 L 1770.59 900.715 C 1770.35 895.236 1781.72 883.979 1782.06 873.93 C 1783.32 836.022 1781.22 797.948 1782.68 760.025 C 1782.84 755.696 1784.23 752.801 1783.46 748.321 C 1780.8 745.613 1782.36 746.34 1778.65 745.977 C 1775.02 739.607 1773.24 751.425 1772.19 739.94 C 1784.22 729.456 1783.89 688.427 1769.34 680.851 C 1768.42 675.806 1761.97 669.991 1757.94 667.185 C 1724.11 643.641 1681.74 664.199 1657.39 691.658 C 1653.67 695.851 1649.72 703.62 1645.82 707.159 C 1645.91 704.961 1646.38 699.225 1645.58 697.391 L 1645.64 697.211 C 1644.55 698.079 1645.71 703.473 1642.43 703.131 C 1640.12 700.967 1643.8 697.936 1638.77 691.109 z" fill="rgb(131,126,172)" transform="translate(0,0)"></path>
<path d="M 722.622 644.335 C 730.055 641.747 741.932 637.292 749.32 635.772 C 748.789 649.803 745.455 729.79 749.177 735.93 C 751.038 734.115 750.949 733.598 751.708 731.12 C 752.948 734.744 752.516 741.04 752.66 745.338 L 751.829 745.986 C 750.109 750.178 751.628 758.189 750.864 763.419 C 745.557 799.711 748.008 836.704 747.092 873.281 C 747.516 881.829 746.323 891.783 747.246 900.184 C 749.62 921.812 751.302 941.564 751.371 963.398 C 743.31 963.84 695.573 963.776 689.224 962.189 C 682.622 955.516 692.32 923.539 692.341 913.612 C 692.476 848.922 692.945 784.018 691.4 719.368 C 691.223 711.961 688.059 699.25 686.454 691.855 C 685.568 687.777 682.609 686.731 681.515 679.785 C 672.962 674.166 669.8 673.869 660.702 669.846 L 660.004 667.601 C 664.171 658.656 710.744 648.414 722.622 644.335 z" fill="rgb(18,89,59)" transform="translate(0,0)"></path>
<path d="M 1744.81 760.496 C 1754.15 758.258 1753.8 753.491 1761.16 751.632 L 1762.71 751.954 C 1757.82 767.675 1725.56 778.713 1717.22 792.662 C 1712.49 793.707 1709.71 797.61 1704.98 800.124 C 1685.48 810.505 1667.65 825.307 1657.27 845.148 C 1652.74 853.814 1654.43 860.497 1653.39 869.129 C 1648.89 906.391 1678.5 942.245 1717.72 931.38 C 1731.69 927.509 1736.48 922.31 1748.13 913.88 L 1752.55 913.103 C 1755.43 910.566 1754.56 911.229 1756.02 907.138 L 1756.68 909.57 C 1757.87 913.872 1760.54 911.386 1753.64 917.833 C 1751.99 919.376 1749.77 923.51 1748.11 925.823 L 1747.86 927.926 C 1713.87 956.403 1652.57 989.723 1613.36 949.134 C 1589.13 924.053 1589.04 876.424 1613.09 850.912 C 1639.47 822.93 1677.51 800.981 1710.72 781.694 C 1719.72 776.387 1737.97 767.109 1744.81 760.496 z" fill="rgb(131,126,172)" transform="translate(0,0)"></path>
<path d="M 1561.51 942.081 L 1560.1 942.666 C 1559.41 946.281 1552.26 953.164 1549.58 956.099 C 1537.01 970.557 1505.94 970.331 1493.25 956.225 C 1476.76 937.882 1481.36 910.211 1498.28 894.212 C 1507.27 885.814 1519.27 881.399 1531.56 881.967 C 1544.25 882.445 1553.35 887.581 1561.74 896.672 C 1561.22 907.373 1562.7 917.34 1561.72 928 C 1561.33 932.283 1561.51 937.725 1561.51 942.081 z" fill="rgb(131,126,172)" transform="translate(0,0)"></path>
<path d="M 769.378 697.179 C 772.879 693.273 776.029 688.761 779.365 684.713 C 803.815 655.044 836.846 638.239 875.435 636.481 C 879.374 636.302 881.962 636.819 884.736 639.625 C 885.735 643.913 880.139 670.913 877.515 676.086 C 876.36 681.198 878.763 690.202 875.546 692.586 C 871.483 691.808 865.206 690.207 861.435 688.677 C 827.982 675.101 802.296 685.945 776.319 707.42 C 766.641 707.634 769.052 709.727 769.378 697.179 z" fill="rgb(18,89,59)" transform="translate(0,0)"></path>
<path d="M 2088.07 929.276 C 2080.85 936.333 2063.84 938.188 2054.22 937.841 C 2007.39 936.149 1976.75 893.99 1958.24 855.36 C 1953.73 845.952 1950.87 830.87 1946.1 820.801 C 1945.54 819.607 1946.55 807.505 1945.96 805.397 C 1940.03 788.269 1939.5 764.932 1944.96 747.675 C 1946.91 741.505 1945.07 731.51 1946.48 728.321 C 1952.18 715.376 1956.53 701.752 1962.86 689.074 C 1963.95 686.513 1969.27 683.511 1970.47 681.582 C 1992.06 646.999 2037.83 640.462 2072.28 658.727 C 2093.91 670.198 2114.1 697.523 2120.84 721.177 C 2123.47 730.381 2126.97 740.176 2127.88 749.841 C 2128.52 767.469 2129.65 788.121 2129.01 805.634 C 2128.3 825.155 2132.36 868.618 2124.08 884.69 C 2122.16 892.082 2121.59 894.952 2117.9 901.995 C 2116.72 904.252 2114.23 908.712 2114.51 910.321 C 2114.68 910.735 2115.9 910.257 2117.05 910.975 C 2117.29 911.619 2117.23 911.292 2117.25 911.953 L 2117.54 912.424 C 2119.93 911.845 2121.59 908.462 2122.77 906.551 C 2127.32 907.828 2126.57 906.903 2129.27 909.905 C 2129.29 919.743 2129.96 952.323 2126.96 959.241 C 2126.68 959.889 2126.45 960.559 2126.2 961.219 L 2125.61 962.713 L 2126.5 964.588 C 2148.4 961.588 2183.83 943.282 2205.92 936.313 C 2214.24 933.688 2222.21 931.739 2228.77 925.829 C 2224.09 923.721 2222.94 925.02 2218.03 922.585 C 2222.61 921.303 2230.51 921.098 2232.18 926.504 C 2232.03 926.777 2231.92 927.074 2231.73 927.324 C 2228.94 931.09 2142.31 962.991 2132 965.642 C 2127.77 966.728 2126.17 966.906 2122.38 964.655 C 2121.38 960.724 2121.35 962.592 2123.06 959.202 C 2127.44 950.535 2125.13 922.342 2124.77 911.906 C 2119.36 914.523 2114.19 914.129 2111.67 917.357 C 2109.39 911.629 2111.32 913.529 2104.5 912.889 C 2137.96 886.715 2121.82 791.954 2124.77 753.82 C 2125.12 749.243 2119.77 734.457 2119.48 725.69 C 2113.77 719.339 2115.67 714.257 2111.36 706.598 C 2094.95 677.393 2077.76 656.47 2042.97 651.601 C 1998.97 645.443 1967.84 676.314 1955.16 715.726 C 1953.21 721.798 1953.73 723.098 1949.23 728.073 C 1947.87 734.68 1948.72 741.276 1948.23 748.048 C 1947.71 756.265 1944.92 765.092 1945.16 773.317 C 1946.3 813.082 1954.79 849.551 1977.04 883.036 C 1999.13 916.27 2031.71 945.212 2074.42 933.714 C 2078.95 932.493 2083.59 930.806 2088.07 929.276 z" fill="rgb(131,126,172)" fill-opacity="0.733333" transform="translate(0,0)"></path>
<path d="M 1769.34 680.851 C 1783.89 688.427 1784.22 729.456 1772.19 739.94 C 1769.01 742.681 1771.9 742.995 1767.97 746.575 C 1763.28 750.853 1773.71 749.217 1774.42 746.735 C 1774.86 745.838 1777.34 745.893 1778.65 745.977 C 1782.36 746.34 1780.8 745.613 1783.46 748.321 C 1784.23 752.801 1782.84 755.696 1782.68 760.025 C 1781.22 797.948 1783.32 836.022 1782.06 873.93 C 1781.72 883.979 1770.35 895.236 1770.59 900.715 L 1772.99 901.584 L 1770.55 900.503 C 1775.38 903.199 1782.03 899.579 1782.34 904.062 C 1782.72 909.643 1781.62 918.824 1781.44 924.455 C 1781.1 935.453 1792.77 954.576 1801.94 960.725 C 1811.24 966.962 1821.52 967.823 1832.36 966.036 C 1842.18 964.418 1843.91 961.767 1851.05 959.268 C 1849.66 960.73 1847.86 962.241 1846.12 963.27 C 1836.5 969.008 1824.95 970.585 1814.14 967.64 C 1794.43 962.203 1782.15 948.507 1779.25 927.581 C 1778.29 920.655 1780.7 912.626 1777.02 906.036 C 1774.56 905.011 1768.25 907.08 1764.95 907.803 C 1764.84 907.244 1764.75 906.682 1764.66 906.118 C 1764.03 901.934 1758.21 906.127 1756.02 907.138 C 1754.56 911.229 1755.43 910.566 1752.55 913.103 L 1748.13 913.88 C 1751.28 911.72 1757.03 904.589 1761.41 901.74 C 1767.34 897.24 1778.21 880.945 1778.23 874.263 C 1778.26 859.526 1781.22 756.788 1776.53 750.814 C 1769.65 750.74 1759.76 762.938 1754.23 766.639 C 1743.78 773.627 1728.16 787.282 1717.22 792.662 C 1725.56 778.713 1757.82 767.675 1762.71 751.954 L 1761.16 751.632 C 1753.8 753.491 1754.15 758.258 1744.81 760.496 C 1753.15 753.756 1766.22 745.239 1772.11 737.029 C 1773.5 735.086 1774.43 730.109 1777.76 725.082 L 1778.41 724.108 C 1778.77 715.173 1778.63 707.543 1778.39 698.626 C 1771 690.658 1776.5 688.248 1769.34 680.851 z" fill="rgb(131,126,172)" fill-opacity="0.760784" transform="translate(0,0)"></path>
<path d="M 722.622 644.335 C 728.025 639.828 746.031 630.727 751.588 637.684 C 753.201 660.624 751.051 687.04 752.558 713.015 L 763.169 705.149 C 764.482 695.024 780.818 678.645 787.734 672.413 C 807.42 654.672 829.646 640.404 856.483 637.78 C 864.524 636.993 880.161 630.775 887.603 638.256 C 890.496 645.333 884.775 652.035 883.566 658.838 C 882.211 666.463 886.597 671.874 877.515 676.086 C 880.139 670.913 885.735 643.913 884.736 639.625 C 881.962 636.819 879.374 636.302 875.435 636.481 C 836.846 638.239 803.815 655.044 779.365 684.713 C 776.029 688.761 772.879 693.273 769.378 697.179 C 762.8 707.697 756.083 719.494 751.708 731.12 C 750.949 733.598 751.038 734.115 749.177 735.93 C 745.455 729.79 748.789 649.803 749.32 635.772 C 741.932 637.292 730.055 641.747 722.622 644.335 z" fill="rgb(254,254,254)" fill-opacity="0.372549" transform="translate(0,0)"></path>
<path d="M 1638.77 691.109 C 1643.8 697.936 1640.12 700.967 1642.43 703.131 C 1645.71 703.473 1644.55 698.079 1645.64 697.211 L 1645.58 697.391 C 1646.38 699.225 1645.91 704.961 1645.82 707.159 C 1641.99 708.111 1644.73 712.942 1640.9 714.827 C 1639.54 715.496 1639.24 715.884 1638.27 716.86 C 1636.33 713.456 1638.74 711.16 1637.86 709.069 C 1636.83 708.331 1630.51 709.522 1630.16 709.714 C 1629.16 722.794 1628.96 722.18 1638.54 722.654 C 1637.47 723.848 1633.39 726.831 1633.37 727.197 C 1632.77 737.172 1632.62 734.832 1627.42 742.708 C 1627.51 747.151 1627.98 751.667 1627.49 756.04 C 1626.99 760.597 1614.84 760.948 1616.57 755.639 C 1618.14 750.776 1616.27 745.967 1617.56 741.011 C 1618.32 738.097 1620.55 735.115 1621.13 731.961 C 1621.43 730.581 1621.75 724.361 1622.55 723.695 C 1627.12 719.892 1625.71 710.372 1628.79 707.783 C 1633.26 704.032 1631.19 702.252 1634.39 698.371 C 1636.64 695.642 1637.28 693.728 1638.77 691.109 z" fill="rgb(131,126,172)" fill-opacity="0.929412" transform="translate(0,0)"></path>
<path d="M 545.228 590.075 C 546.117 584.339 553.797 567.932 556.289 561.558 L 558.14 560.331 C 569.207 564.285 556.59 637.732 565.776 643.102 C 575.835 648.983 617.685 637.986 629.198 645.042 C 608.387 647.025 580.371 646.406 558.807 646.507 C 558.937 632.448 559.84 585.626 558.195 573.491 L 557.154 572.73 C 554.877 574.918 555.312 579.614 553.622 581.631 C 550.872 584.912 548.241 586.48 545.228 590.075 z" fill="rgb(18,89,59)" fill-opacity="0.886275" transform="translate(0,0)"></path>
<path d="M 769.378 697.179 C 769.052 709.727 766.641 707.634 776.319 707.42 C 768.162 713.862 763.471 729.659 756.058 735.449 C 755.006 736.27 758.539 739.558 752.66 745.338 C 752.516 741.04 752.948 734.744 751.708 731.12 C 756.083 719.494 762.8 707.697 769.378 697.179 z" fill="rgb(18,89,59)" fill-opacity="0.952941" transform="translate(0,0)"></path>
<path d="M 1561.74 896.672 C 1567.27 903.178 1562.48 903.771 1567.71 909.61 C 1571.55 913.889 1571.08 925.657 1566.46 929.752 C 1562.1 933.626 1568.47 935.737 1561.51 942.081 C 1561.51 937.725 1561.33 932.283 1561.72 928 C 1562.7 917.34 1561.22 907.373 1561.74 896.672 z" fill="rgb(131,126,172)" fill-opacity="0.980392" transform="translate(0,0)"></path>
<path d="M 641.349 907.883 L 643.56 905.465 C 645.046 903.815 650.266 895.796 652.936 896.378 C 662.242 898.408 653.389 907.687 651.575 912.552 C 650.747 914.771 639.834 929.291 638.135 930.474 L 637.185 931.147 C 637.831 925.253 637.543 924.267 641.936 920.167 C 643.963 918.054 643.792 914.091 647.729 911.566 C 648.307 911.196 648.269 909.91 648.13 908.945 C 647.065 907.908 643.482 908.297 641.349 907.883 z" fill="rgb(18,89,59)" fill-opacity="0.886275" transform="translate(0,0)"></path>
<path d="M 1433.58 865.087 C 1434.13 861.567 1439.75 855.887 1443.5 857.173 C 1454.78 861.053 1444.22 865.028 1444.14 867.447 C 1443.97 872.582 1445.94 875.845 1440.93 879.704 C 1440.86 879.088 1440.78 878.472 1440.71 877.855 C 1440.88 871.951 1434.84 878.333 1436 869.491 C 1436.41 866.305 1436.46 865.624 1433.58 865.087 z" fill="rgb(18,89,59)" fill-opacity="0.972549" transform="translate(0,0)"></path>
<path d="M 2101.72 917.095 C 2108.3 917.828 2107.07 915.204 2108.62 921.629 C 2101.56 927.195 2101.93 932.353 2095.28 936.902 C 2095.75 926.694 2099.54 927.388 2090.09 925.961 C 2094.65 922.29 2097 921.415 2101.72 917.095 z" fill="rgb(131,126,172)" fill-opacity="0.972549" transform="translate(0,0)"></path>
<path d="M 2122.77 906.551 C 2121.59 908.462 2119.93 911.845 2117.54 912.424 L 2117.25 911.953 C 2117.23 911.292 2117.29 911.619 2117.05 910.975 C 2115.9 910.257 2114.68 910.735 2114.51 910.321 C 2114.23 908.712 2116.72 904.252 2117.9 901.995 C 2121.59 894.952 2122.16 892.082 2124.08 884.69 C 2124.44 895.557 2122.13 894.933 2125.9 905.36 C 2125.27 906.324 2123.94 905.669 2122.77 906.551 z" fill="rgb(131,126,172)" fill-opacity="0.960784" transform="translate(0,0)"></path>
<path d="M 1756.02 907.138 C 1758.21 906.127 1764.03 901.934 1764.66 906.118 C 1764.75 906.682 1764.84 907.244 1764.95 907.803 C 1763.9 913.981 1765.8 912.489 1761.03 914.039 C 1760.91 914.08 1758.9 919.553 1756.68 919.814 C 1753.25 922.728 1751.99 923.543 1748.11 925.823 C 1749.77 923.51 1751.99 919.376 1753.64 917.833 C 1760.54 911.386 1757.87 913.872 1756.68 909.57 L 1756.02 907.138 z" fill="rgb(131,126,172)" fill-opacity="0.972549" transform="translate(0,0)"></path>
<path d="M 1638.54 722.654 C 1628.96 722.18 1629.16 722.794 1630.16 709.714 C 1630.51 709.522 1636.83 708.331 1637.86 709.069 C 1638.74 711.16 1636.33 713.456 1638.27 716.86 C 1638.41 718.824 1638.59 720.682 1638.54 722.654 z" fill="rgb(131,126,172)" transform="translate(0,0)"></path>
<path d="M 641.349 907.883 C 643.482 908.297 647.065 907.908 648.13 908.945 C 648.269 909.91 648.307 911.196 647.729 911.566 C 643.792 914.091 643.963 918.054 641.936 920.167 C 641.956 919.341 642.52 915.995 641.274 915.417 C 640.256 914.945 639.091 916.244 638.306 916.728 C 635.835 918.25 632.491 917.305 629.889 916.714 C 632.864 914.512 638.497 911.66 640.161 909.479 C 640.56 908.957 639.957 908.834 641.349 907.883 z" fill="rgb(18,89,59)" fill-opacity="0.984314" transform="translate(0,0)"></path>
<path d="M 2104.5 912.889 C 2111.32 913.529 2109.39 911.629 2111.67 917.357 L 2111.01 918.714 C 2110.39 920.072 2109.82 920.736 2108.62 921.629 C 2107.07 915.204 2108.3 917.828 2101.72 917.095 C 2103.32 915.143 2103.42 915.103 2104.5 912.889 z" fill="rgb(131,126,172)" fill-opacity="0.862745" transform="translate(0,0)"></path>
<path d="M 1778.65 745.977 C 1777.34 745.893 1774.86 745.838 1774.42 746.735 C 1773.71 749.217 1763.28 750.853 1767.97 746.575 C 1771.9 742.995 1769.01 742.681 1772.19 739.94 C 1773.24 751.425 1775.02 739.607 1778.65 745.977 z" fill="rgb(131,126,172)" fill-opacity="0.905882" transform="translate(0,0)"></path>
<metadata><recraft-signature>{"signed_by": "recraft", "signature_b64": "DUVMk3lqVnoJEKacNFDfHSy2t/F2s7jYeMDvkwVc6Eul9CHorDULVRt8D6r2k65wR2odfz8AgR4UsXysTIsrDw==", "signing_algo": "Ed25519", "generation_timestamp": 1780471551, "identifier": "ec0be429-69d8-407e-9aa3-12877c8d5ba2"}</recraft-signature></metadata></svg>

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 KiB

214
docs/contributing/index.md Normal file
View file

@ -0,0 +1,214 @@
---
title: Contributing
---
# Contributing to Tree of Ascension Docs
Welcome! This guide will get you from zero to making your first edit — even if you've never used git before.
> **🔒 Registration is currently closed.** New contributor accounts are not available at this moment. If you'd like to get involved, solve the puzzle below to reveal the contact email and request access.
---
## 🔐 Request access
<div class="captcha-game" style="background:linear-gradient(135deg,#f0f7f2,#e5f0e8);border-radius:16px;padding:1.5rem 1.8rem;margin:1.2rem 0 1.8rem;text-align:center;border:1px solid #c8dcd0;">
<p style="margin:0 0 1rem;color:#3d6b52;font-weight:650;font-size:1.05rem;">🌱 Click each leaf in order to reveal the contact email:</p>
<div id="leaf-container" style="display:flex;gap:0.8rem;justify-content:center;align-items:center;flex-wrap:wrap;"></div>
<p id="captcha-hint" style="margin:0.9rem 0 0;font-size:0.85rem;color:#6b8b7a;">Click them from smallest to largest 🌱 → 🌳</p>
<div id="captcha-result" style="display:none;margin-top:1rem;padding:0.8rem 1rem;background:white;border-radius:10px;font-size:1.05rem;border:1px dashed #92ad9e;"></div>
</div>
<script>
(function(){
if(window._leafCaptchaDone)return;window._leafCaptchaDone=true;
var leafTypes=[{e:'🌱'},{e:'🌿'},{e:'🪴'},{e:'🌳'}];
// shuffle
for(var i=leafTypes.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=leafTypes[i];leafTypes[i]=leafTypes[j];leafTypes[j]=t;}
var container=document.getElementById('leaf-container');
var correct=[]; // will hold positions of 🌱,🌿,🪴,🌳 in shuffled visual order
leafTypes.forEach(function(l,pos){
if(l.e==='🌱')correct[0]=pos;
if(l.e==='🌿')correct[1]=pos;
if(l.e==='🪴')correct[2]=pos;
if(l.e==='🌳')correct[3]=pos;
var s=document.createElement('span');
s.textContent=l.e;
s.id='leaf-'+pos;
s.style.cssText='cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#4a8262;color:white;font-size:1.4rem;transition:all 0.3s;user-select:none;';
s.onclick=function(){captchaClick(pos);};
container.appendChild(s);
});
var order=[],step=0;
function resetAll(){
order=[];step=0;
for(var i=0;i<4;i++){var p=document.getElementById('leaf-'+i);if(p)p.style.background='#4a8262';}
}
window.captchaClick=function(i){
if(order.indexOf(i)!==-1)return;
order.push(i);
var p=document.getElementById('leaf-'+i);if(p)p.style.background='#b9a5d7';
if(correct[step]===i){step++;
if(step===4){
var r=document.getElementById('captcha-result');
r.innerHTML='📧 <a href=\"mailto:tree.ad@use.startmail.com\">tree.ad@use.startmail.com</a>';
r.style.display='block';
var h=document.getElementById('captcha-hint');
h.textContent='✨ You found it! Send an email to request access.';
}
}else{
resetAll();
document.getElementById('captcha-hint').textContent='Not quite — try again! Click smallest to largest 🌱 → 🌿 → 🪴 → 🌳';
}
};
})();
</script>
Once you have access, read on below.
---
## 🛠 How it works
| What | Details |
|------|---------|
| **Site host** | [Forgejo](https://forgejo.org) — a friendly, self-hosted git platform |
| **Repo** | [bali.krystl.org/aja/up](https://bali.krystl.org/aja/up) |
| **Built with** | [Zensical](https://zensical.org) — turns Markdown files into a beautiful docs site |
| **Local editor** | [Tolaria](https://tolaria.dev) — a simple desktop app for editing Markdown with git built in |
---
## ✏️ Making your first edit
Follow these steps. If you get stuck, the answer is usually just a few clicks away.
### Step 1 — Open the repo in Forgejo
Go to **[bali.krystl.org/aja/up](https://bali.krystl.org/aja/up)** and sign in with your account.
### Step 2 — Create your branch
Every edit lives on its own branch. This keeps the main site safe while you work.
- Click the **branch dropdown** (near the top of the page, it probably says `main` or `master`)
- Type a short name for your branch — like `add-meditation-guide` or `fix-typo-daily-sadhana`
- Click **"Create branch"**
You're now on your own copy of the site. Any changes you make stay on this branch until you're ready to share them.
### Step 3 — Edit a file
- Browse to the file you want to edit (all content lives in the `docs/` folder)
- Click the **pencil icon** (✏️) in the toolbar above the file
- Make your changes using Markdown (see our [Markdown quick reference](markdown.md))
- Scroll down and write a short commit message — something like `Add breathing exercise section`
- Click **"Commit changes"**
### Step 4 — Open a Pull Request
When your changes are ready:
- Go back to the repo homepage
- You'll see a banner: *"You pushed to your branch — want to open a pull request?"*
- Click **"Compare & pull request"**
- Add a title and a short description of what you changed
- Click **"Create pull request"**
A maintainer will review your changes and merge them into the main site. That's it! 🎉
---
## 💻 Editing locally (optional)
If you prefer to work on your own computer:
### You'll need
- **[git](https://git-scm.com/downloads)** — the version control tool
- **[Tolaria](https://tolaria.dev)** — a friendly Markdown editor with git support
### Steps
```bash
# 1. Clone the repo
git clone https://bali.krystl.org/aja/up.git
cd up
# 2. Create your branch
git checkout -b my-edit
# 3. Open the folder in Tolaria and start editing
# 4. When done, commit and push
git add .
git commit -m "Describe your changes"
git push -u origin my-edit
```
Then follow Step 4 above ("Open a Pull Request") to open your pull request on Forgejo.
---
## 🌱 Plant Your Own
Want to run your own version of this site? You can copy it and publish it under your own domain.
### Copy the repo
**Option A — With git (recommended):**
```bash
git clone https://bali.krystl.org/aja/up.git my-own-site
cd my-own-site
```
**Option B — Download as ZIP:**
1. Go to [bali.krystl.org/aja/up](https://bali.krystl.org/aja/up)
2. Find the **"Download"** or **"⋯"** menu near the top of the file list
3. Choose **"Download ZIP"**
4. Unzip it on your computer
### Set up Zensical
This site uses [Zensical](https://zensical.org) to build from Markdown. Install it and edit the config:
```bash
# Install Zensical (Python 3.12+ required)
pip install zensical
# Or with uv (recommended):
uv add --dev zensical
```
### Make it yours
Open `zensical.toml` and change:
```toml
site_name = "Your Site Name"
site_description = "What your site is about"
site_url = "https://your-domain.com"
site_author = "You"
repo_url = "https://your-forgejo-instance/you/your-repo"
```
Replace `docs/assets/images/tree-ad-logo.svg` with your own logo, then build:
```bash
zensical build --config-file zensical.toml
```
Your site appears in the `site/` folder — upload it to any static host (Netlify, Cloudflare Pages, a VPS, or keep it on Forgejo Pages).
### Use your own domain
1. Build the site and upload the `site/` folder to your hosting provider
2. Point your domain's DNS to your host (your provider will have instructions)
3. Update `site_url` in `zensical.toml` to match
That's it — you now have your own Zensical-powered knowledge garden.
---
Questions? Found a bug? **[Open an issue](https://bali.krystl.org/aja/up/issues)** on the repo.

View file

@ -1,156 +1,26 @@
--- ---
icon: lucide/rocket icon: lucide/leaf
--- ---
# Welcome!
For full documentation visit [zensical.org](https://zensical.org/docs/). # Tree of Ascension Docs
## Commands <figure class="godspark-hero" markdown="1">
<img src="assets/images/hero.jpg" alt="Tree of Ascension" />
<figcaption>Every branch reaches toward the light.</figcaption>
</figure>
- `zensical new` - Create a new project <p class="intro-lead gp-reveal">
- `zensical serve` - Start local web server A living guide for those climbing upward — practices for the body, teachings for the mind, and community for the soul. Not a destination, but a tree growing one branch at a time.
- `zensical build` - Build your site </p>
## [[markdown]] <hr class="wp-divider" />
## Examples <section class="wp-section gp-reveal">
## How to contribute
### Admonitions - **Add a reflection** — short notes, practices, or questions
- **Plant an idea** — link into new themed pages
- **Tend the tone** — kind, grounded edits keep the garden coherent
</section>
> Go to [documentation](https://zensical.org/docs/authoring/admonitions/) <p class="wp-spacer"></p>
!!! note
```text
This is a **note** admonition. Use it to provide helpful information.
```
!!! warning
```text
This is a **warning** admonition. Be careful!
```
### Details
> Go to [documentation](https://zensical.org/docs/authoring/admonitions/#collapsible-blocks)
??? info "Click to expand for more info"
```text
This content is hidden until you click to expand it.
Great for FAQs or long explanations.
```
## Code Blocks
> Go to [documentation](https://zensical.org/docs/authoring/code-blocks/)
```python
def greet(name):
print(f"Hello, {name}!") # (1)!
greet("Python")
```
1. Go to [documentation](https://zensical.org/docs/authoring/code-blocks/#code-annotations)
Code annotations allow to attach notes to lines of code.
Code can also be highlighted inline: `#!python print("Hello, Python!")`.
## Content tabs
> Go to [documentation](https://zensical.org/docs/authoring/content-tabs/)
=== "Python"
````text
``` python
print("Hello from Python!")
```
````
=== "Rust"
````text
``` rs
println!("Hello from Rust!");
```
````
## Diagrams
> Go to [documentation](https://zensical.org/docs/authoring/diagrams/)
``` mermaid
graph LR
A[Start] --> B{Error?};
B -->|Yes| C[Hmm...];
C --> D[Debug];
D --> B;
B ---->|No| E[Yay!];
```
## Footnotes
> Go to [documentation](https://zensical.org/docs/authoring/footnotes/)
Here's a sentence with a footnote.[1](#user-content-fn-1)
Hover it, to see a tooltip.
## Formatting
> Go to [documentation](https://zensical.org/docs/authoring/formatting/)
- ==This was marked (highlight)==
- ^^This was inserted (underline)^^
- ~~This was deleted (strikethrough)~~
- H~~2~~O
- A^T^A
- ++ctrl+alt+del++
## Icons, Emojis
> Go to [documentation](https://zensical.org/docs/authoring/icons-emojis/)
- :sparkles: `:sparkles:`
- :rocket: `:rocket:`
- :tada: `:tada:`
- :memo: `:memo:`
- :eyes: `:eyes:`
## Maths
> Go to [documentation](https://zensical.org/docs/authoring/math/)
$$
\cos x=\sum_{k=0}^{\infty}\frac{(-1)^k}{(2k)!}x^{2k}
$$
!!! warning "Needs configuration"\
Note that MathJax is included via a `script` tag on this page and is not\
configured in the generated default configuration to avoid including it\
in a pages that do not need it. See the documentation for details on how\
to configure it on all your pages if they are more Maths-heavy than these\
simple starter pages.
## Task Lists
> Go to [documentation](https://zensical.org/docs/authoring/lists/#using-task-lists)
- [x] Install Zensical
- [x] Configure `zensical.toml`
- [x] Write amazing documentation
- [ ] Deploy anywhere
## Tooltips
> Go to [documentation](https://zensical.org/docs/authoring/tooltips/)
[Hover me](https://example.com)
## Footnotes
1. This is the footnote. [](#user-content-fnref-1)

90
docs/javascripts/extra.js Normal file
View file

@ -0,0 +1,90 @@
/**
* Godspark Refined Zensical Light JS
* - Scroll reveal for `.gp-reveal`
* - Cursor glow via `[gp-glow]` attribute
* - Reduced-motion safe
*/
;(function () {
"use strict";
const prefersReducedMotion = window.matchMedia(
"(prefers-reduced-motion: reduce)"
).matches;
function initScrollReveal() {
if (prefersReducedMotion) return;
const nodes = document.querySelectorAll(".gp-reveal");
if (!nodes.length) return;
const thresholdRaw = getComputedStyle(document.documentElement)
.getPropertyValue("--gp-reveal-threshold")
.trim();
const threshold = Number.isFinite(parseFloat(thresholdRaw))
? parseFloat(thresholdRaw)
: 0.12;
const observer = new IntersectionObserver(
(entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
entry.target.classList.add("is-visible");
observer.unobserve(entry.target);
}
});
},
{ threshold, rootMargin: "0px 0px -16px 0px" }
);
nodes.forEach((el) => observer.observe(el));
}
function initCursorGlow() {
const el = document.documentElement;
const enabled =
el.hasAttribute("gp-glow") || el.classList.contains("gp-glow-active");
if (!enabled) return;
if (prefersReducedMotion) return;
el.classList.add("gp-glow-active");
let raf = false;
function setGlow(x, y) {
el.style.setProperty("--gp-cursor-x", x + "px");
el.style.setProperty("--gp-cursor-y", y + "px");
}
function onMove(e) {
if (raf) return;
raf = true;
requestAnimationFrame(() => {
const cx = e.touches ? e.touches[0].clientX : e.clientX;
const cy = e.touches ? e.touches[0].clientY : e.clientY;
setGlow(cx, cy);
raf = false;
});
}
function onHide() { el.style.setProperty("--gp-glow-opacity", "0"); }
function onShow() { el.style.setProperty("--gp-glow-opacity", "1"); }
const passive = { passive: true };
document.addEventListener("mousemove", onMove, passive);
document.addEventListener("touchmove", onMove, passive);
document.addEventListener("mouseleave", onHide);
document.addEventListener("mouseenter", onShow);
}
function boot() {
initScrollReveal();
initCursorGlow();
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", boot);
} else {
boot();
}
})();

View file

@ -0,0 +1,67 @@
---
icon: material/meditation
---
# Daily Sadhana
*Sadhana* means daily spiritual practice — not something you do when you have time, but the foundation you build everything else upon. It doesn't require a temple or a teacher. It requires showing up.
---
## Meditation
Sit. Breathe. That's the whole instruction.
Start with five minutes. The mind will wander — that's what minds do. The practice is not emptying the mind but noticing when it has wandered and gently returning. Every return is a rep. Like any muscle, attention strengthens with use.
No app needed. No special cushion. A chair, a floor, a patch of grass — anywhere you can be still.
---
## Gratitude journal
Before bed or first thing in the morning, write down three things you are genuinely grateful for. Not generic blessings — specific moments. The warmth of sunlight through a window. A conversation that landed. The taste of a ripe fruit.
Gratitude is not toxic positivity. It is the deliberate practice of noticing what is already good, which rewires the brain away from its negativity bias over time.
---
## Personality defect removal
This is the inner work few want to do: asking honestly where you are still reactive.
- Where am I still carrying anger?
- What am I afraid of?
- How can I be more patient today?
- Where could I replace judgment with kindness?
Don't fix it all at once. Pick one thread and follow it. The goal is not to become perfect — it is to become less defended, more available, more unconditionally loving. Not toward everyone else first — toward yourself.
??? question "A simple evening practice"
Sit quietly and replay the day. Notice any moment where you contracted — irritation, defensiveness, avoidance. Don't judge the reaction. Just see it. Tomorrow, you'll have another chance.
---
## Movement: energy and strength
The body needs two kinds of movement every day:
**Energy practice** — yoga, tai chi, qigong, or simple stretching with breath awareness. This moves *prana* (life force) through the channels of the body. Even ten minutes shifts the nervous system from fight-or-flight to rest-and-digest.
**Cardio and strength** — walking briskly, running, bodyweight exercises, lifting. The body evolved to move against resistance. Without it, the mind stagnates too.
Pair them. Energy practice in the morning to open; strength in the afternoon to ground.
---
## Visualization: morning and night
Every morning and every night before sleep, spend two minutes visualizing the future you want — for yourself, your family, your community, your 'tribe.' See it as if it is real *now*. Feel the gratitude as if it has already arrived.
This is not magical thinking. It is the practice of orienting the subconscious toward what you are building, so that during the day, you recognize the doors when they appear.
---
**Related:** [Finding Your Purpose](../../teachings/finding-purpose.md) — when sadhana meets direction.
*What practice will you show up for tomorrow?*

View file

@ -0,0 +1,60 @@
---
icon: material/phone-check
---
# Digital Wellness
Your attention is the most valuable resource you own. Every notification, every algorithmic feed, every autoplay is designed to extract it. Taking it back is not a luxury — it is a prerequisite for any kind of awakening.
---
## The news fast
Try this: no news for one week. No headlines, no push alerts, no doom-scrolling. The world will continue. The things you actually need to know will reach you through people, not algorithms.
After a week, notice: is your anxiety lower? Is your attention span longer? Are you more present with the people in front of you?
!!! note "The 0% horror rule"
Zero horror films. Zero true crime. Zero content that feeds fear. Your nervous system does not distinguish between a threat on screen and a threat in the room — the cortisol release is real.
---
## Curating what enters your mind
Replace passive consumption with intentional selection. Build a playlist of media that genuinely brings you joy — films, shows, documentaries that leave you feeling expanded, not depleted.
- **Music**: only songs where every word is positive. Natural classical, sacred frequency music (432 Hz, 528 Hz), instrumental pieces that create space rather than filling it.
- **Images**: keep a few favorite baby animal photos handy — on your phone wallpaper, on the fridge. It sounds simple, but the oxytocin release from cuteness is real and immediate. It's a quick return to heart center when you need it.
---
## Screen limits for yourself and family
Set boundaries you can actually keep:
- [ScreenZen](https://screenzen.co/) — makes you pause before opening apps, breaking the reflex loop.
- [Kids360](https://kids360.app/) — for children's devices, with transparent limits rather than secret surveillance.
- No screens in the bedroom. Charge devices in another room.
- Read a physical book or have a real conversation instead of reaching for a screen in idle moments.
The goal is not abstinence. It's agency.
---
## Replacing screen time with life
For every hour you reclaim from screens:
- Sit outside and do nothing
- Read something printed on paper
- Call someone you love
- Cook a meal from whole ingredients
- Write by hand
The internet is a tool. When it becomes the environment, you've lost the plot.
---
**Related:** [Digital Sovereignty](../../teachings/digital-sovereignty.md) — when wellness meets infrastructure.
*What's the first app you'll set a limit on today?*

View file

@ -0,0 +1,48 @@
---
icon: material/nature-people
---
# Grounding in Nature
The earth beneath your feet has been waiting for you. Not metaphorically — literally. Every moment spent with bare skin on soil, grass, or sand is a reconnection to the electromagnetic field that humans evolved within for hundreds of thousands of years.
---
## Why ground?
Modern life separates us from the earth: rubber-soled shoes, elevated buildings, concrete pavements. The simple act of barefoot contact — called *earthing* or *grounding* — allows the body to absorb free electrons from the earth's surface. Research suggests this can reduce inflammation, improve sleep, and calm the nervous system.
!!! note "Start small"
Five minutes of bare feet on grass in the morning is enough to begin. You don't need a forest retreat — a patch of lawn, a beach, or even damp soil in a garden works.
---
## Sun gazing: reconnecting with light
Sun gazing is an ancient practice of looking at the sun during the first or last hour of daylight, when UV levels are safe. Start with 10 seconds and never push beyond comfort. The practice is less about the eyes and more about allowing the body's circadian rhythm to realign with natural light cycles.
Sit. Breathe. Let the light wash over you. No agenda.
---
## Sitting practice: temples, forests, waterfalls
Find a place where nature is doing its thing without human orchestration — a forest floor, a temple courtyard, beside a waterfall. Then do the hardest thing: nothing.
Don't meditate. Don't journal. Don't photograph.
Just sit and watch. Notice how the mind, given no task, eventually settles. This is *melukat* in the Balinese tradition — water purification not just of the body, but of the energetic residue we carry. Even sitting beside moving water, without entering it, can shift something.
---
## Integrating nature time
The guideline is simple: for every hour spent on a device, spend an equal hour in direct contact with the natural world. This isn't a punishment — it's a restoration.
Start tracking it loosely. You may find, as many do, that the nature hours become the ones you crave.
---
**Related:** [Nourishing the Body](../practices/nourishing-the-body.md) — bringing nature inside through food and materials.
*What patch of earth will you stand on tomorrow morning?*

18
docs/practices/index.md Normal file
View file

@ -0,0 +1,18 @@
---
icon: material/run
---
# Practices
Small, doable actions. Each practice here is something you can try today — no preparation, no expertise, just willingness.
<div class="grid cards" markdown>
- [:material-nature-people: **Grounding in Nature**](grounding-in-nature.md) — Barefoot contact, sun gazing, sitting practice, melukat
- [:material-food-apple: **Nourishing the Body**](nourishing-the-body.md) — Real food, herbal teas, fasting, natural materials, self-massage
- [:material-meditation: **Daily Sadhana**](daily-sadhana.md) — Meditation, gratitude, shadow work, movement, visualization
- [:material-phone-check: **Digital Wellness**](digital-wellness.md) — News fast, screen limits, curating what enters your mind
</div>
Pick one. Start there. The rest will unfold.

View file

@ -0,0 +1,65 @@
---
icon: material/food-apple
---
# Nourishing the Body
The body is not a machine to be fueled — it is a living garden that responds to everything you place in it, on it, and around it. Nourishment goes far beyond calories.
---
## Food from people, not corporations
Most of what fills supermarket shelves is the product of monopolized supply chains — processed, preserved, and profited from at every step. The alternative is older and simpler: know who grows your food.
Work with local farmers. Join a CSA (community-supported agriculture). Buy from a neighbor who keeps hens. Trade skills for produce. When you eat food grown by someone you've spoken to, something shifts — you're no longer a consumer but a participant in a living exchange.
!!! warning "The supermarket trap"
Nearly every aisle in a conventional supermarket funnels money into a handful of conglomerates. The [documentary on monopoly food systems](https://www.youtube.com/watch?v=nLZV5EesNNI) is worth watching. Start by removing one aisle at a time from your routine.
---
## Herbal teas as daily medicine
Herbal teas are one of the gentlest ways to rebalance the body throughout the day:
| Time | Tea | Purpose |
|------|-----|---------|
| Morning | Flower teas (chamomile, jasmine, rose) | Light, opening, uplifting |
| After meals | Ginger tea | Digestive fire, warmth |
| When agitated | Vata-pacifying (licorice, cinnamon, ashwagandha) | Grounding, calming |
| When overheated | Pitta-pacifying (mint, fennel, coriander) | Cooling, soothing |
Learn your own patterns. The tea that works for someone else may not be yours — experiment gently.
---
## Fasting as reset
Fasting doesn't need to be extreme to be effective. Start with one day a week of liquids only — fresh juices, soups, herbal teas. From there, try a 24-hour water fast. With guidance, you can work toward a 3-day water fast, which triggers deeper cellular repair processes (autophagy).
The goal is not deprivation. It's giving the digestive system the rest it rarely receives in a culture of constant consumption.
---
## What touches your skin
Gradually replace clothing and bed linen with natural, non-toxic materials: organic cotton, linen, hemp, wool. The skin is the largest organ — what it rests against for 8 hours a night matters.
The same applies to what you put *on* your body. A self oil massage (*abhyanga*) with a simple, chemical-free oil suited to your constitution — or just pure coconut oil — is a daily practice that nourishes skin, calms the nervous system, and reconnects you to your own body with care rather than criticism.
---
## Small detox steps
- **Tongue scraping** each morning removes the coating that accumulates overnight.
- **Sauna** or sweat lodges help the body release what it's been storing.
- **Reduce foods** you already know don't agree with you — you know which ones they are.
None of this needs to happen overnight. One change, held consistently, reshapes a life.
---
**Related:** [Grounding in Nature](../practices/grounding-in-nature.md) — where nourishment meets the earth.
*What's one thing your body has been quietly asking you to change?*

511
docs/stylesheets/extra.css Normal file
View file

@ -0,0 +1,511 @@
/*
* Godspark Refinement Zensical Theme
* Nature + futuristic aurora pastel/iridescent upgrade.
* Additive CSS layer. Preserves toolbar readability.
*/
:root {
/* Refined iris palette */
--gp-bg: #f6fbf7;
--gp-surface: #ffffff;
--gp-text: #1c2b1c;
--gp-text-muted: #4e5e4b;
--gp-primary: #4a8262; /* darker sage — visible link color */
--gp-secondary: #a8c5b6;
--gp-tertiary: #e9dfc6;
--gp-accent: #b9a5d7; /* soft aurora purple */
/* Iridescent atmosphere tokens */
--gp-iris-1: #f1f6f3;
--gp-iris-2: #eef3f6;
--gp-iris-3: #f6f2f8;
--gp-iris-4: #f5f1ec;
--gp-aurora-iris: linear-gradient(
135deg,
var(--gp-iris-1), var(--gp-iris-2), var(--gp-iris-3), var(--gp-iris-4)
);
--gp-card-bg: rgba(255, 255, 255, 0.74);
--gp-card-border: rgba(122, 170, 150, 0.22);
--gp-card-shadow: 0 8px 28px rgba(122, 170, 150, 0.10);
--gp-card-hover: 0 18px 40px rgba(122, 170, 150, 0.16);
--gp-glow: rgba(141, 184, 160, 0.35);
--gp-glow-intense: rgba(160, 130, 210, 0.45);
--gp-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
--gp-duration: 0.78s;
--gp-distance: 20px;
}
/* Base atmosphere */
body {
background-color: var(--gp-bg);
background-image:
radial-gradient(ellipse at 12% -8%, rgba(210, 230, 240, 0.38), transparent 56%),
radial-gradient(ellipse at 88% 108%, rgba(215, 210, 235, 0.34), transparent 58%),
var(--gp-aurora-iris);
background-attachment: fixed;
background-size: 100% 100%, 100% 100%, 200% 200%;
color: var(--gp-text);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
@media (prefers-reduced-motion: no-preference) {
body.godspark-breathe {
animation: gp-breathe 36s ease-in-out infinite;
}
@keyframes gp-breathe {
0%, 100% { background-position: 0 0, 0 0, 0% 50%; }
50% { background-position: 0 0, 0 0, 100% 50%; }
}
}
/* Typography */
h1, h2, h3, h4, h5, h6,
article h1, article h2, article h3 {
font-weight: 650;
letter-spacing: -0.012em;
line-height: 1.2;
color: var(--gp-text);
}
a {
color: var(--gp-primary);
text-decoration-thickness: 1px;
text-underline-offset: 3px;
transition: color 0.22s var(--gp-ease), text-decoration-color 0.22s;
}
a:hover {
color: var(--gp-accent);
}
/* Layout helpers */
.zensical article,
.zensical .content,
main, article {
position: relative;
z-index: 1;
}
.zensical article > *,
.zensical .content > *,
main > *,
article > *,
section {
position: relative;
z-index: 1;
}
/* Cards */
.zensical .card,
section.card,
div.card,
article.card,
article section,
main section {
background: var(--gp-card-bg);
border: 1px solid var(--gp-card-border);
border-radius: 22px;
backdrop-filter: blur(14px) saturate(145%);
-webkit-backdrop-filter: blur(14px) saturate(145%);
padding: 1.6rem 1.8rem;
box-shadow: var(--gp-card-shadow);
transition:
transform var(--gp-duration) var(--gp-ease),
box-shadow var(--gp-duration) var(--gp-ease),
border-color 0.3s ease;
}
.zensical .card:hover,
section.card:hover,
div.card:hover,
article.card:hover {
transform: translateY(-4px);
border-color: rgba(122, 170, 150, 0.48);
box-shadow: var(--gp-card-hover);
}
/* Homepage hero panels */
.hero-media,
.godspark-hero {
margin: 1.2rem 0 2rem;
border-radius: 22px;
overflow: hidden;
border: 1px solid var(--gp-card-border);
background:
linear-gradient(180deg, rgba(255,255,255,0.52), rgba(255,255,255,0.30)),
var(--gp-aurora-iris);
background-blend-mode: overlay;
backdrop-filter: blur(10px) saturate(120%);
-webkit-backdrop-filter: blur(10px) saturate(120%);
box-shadow: var(--gp-card-shadow);
}
.hero-media img,
.godspark-hero img {
display: block;
width: 100%;
height: auto;
max-height: 380px;
object-fit: cover;
}
.hero-media figcaption,
.godspark-hero figcaption {
padding: 0.8rem 1rem;
color: var(--gp-text-muted);
font-size: 0.92rem;
}
.intro-lead {
font-size: 1.18rem;
line-height: 1.65;
color: var(--gp-text-muted);
}
/* Front-page lists */
.index main ul,
.index main ol {
padding-left: 1.2rem;
line-height: 1.75;
}
.index main ul li::marker,
.index main ol li::marker {
color: var(--gp-primary);
}
/* CTA buttons (additive only) */
button.cta,
a.cta,
.zensical .cta,
button[class*="godspark"],
a[class*="godspark"] {
background: linear-gradient(120deg, var(--gp-primary), var(--gp-accent));
color: #fff;
font-weight: 550;
border: 1px solid rgba(122, 170, 150, 0.24);
border-radius: 999px;
padding: 0.55em 1.5em;
cursor: pointer;
transition: opacity 0.28s, box-shadow 0.28s, transform 0.28s var(--gp-ease);
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 0.45em;
position: relative;
overflow: hidden;
}
button.cta:hover,
a.cta:hover,
.zensical .cta:hover,
button[class*="godspark"]:hover,
a[class*="godspark"]:hover {
opacity: 0.96;
box-shadow: 0 12px 26px var(--gp-glow);
transform: translateY(-1px);
}
button.cta::after,
a.cta::after,
.zensical .cta::after,
button[class*="godspark"]::after,
a[class*="godspark"]::after {
content: "";
position: absolute;
inset: 0;
background:
linear-gradient(120deg, transparent, rgba(255,255,255,0.42), transparent);
background-size: 220% 100%;
background-repeat: no-repeat;
background-position: -130% 0;
pointer-events: none;
border-radius: inherit;
}
.zensical .cta:hover::after,
button[class*="godspark"]:hover::after,
a[class*="godspark"]:hover::after {
animation: gp-sheen 7s var(--gp-ease) infinite;
}
@keyframes gp-sheen {
0% { background-position: -140% 0; }
55% { background-position: 80% 0; }
100% { background-position: 80% 0; }
}
/* Code (preserve toolbar button readability) */
pre {
background: rgba(255, 255, 255, 0.82);
border: 1px solid var(--gp-card-border);
border-radius: 14px;
padding: 1.1rem 1.3rem;
}
code, kbd {
background: rgba(122, 170, 150, 0.10);
border: 1px solid rgba(122, 170, 150, 0.18);
border-radius: 7px;
color: var(--gp-text);
}
/* Blockquotes */
blockquote {
border-left: 3px solid var(--gp-secondary);
background: rgba(141, 184, 160, 0.08);
border-radius: 0 12px 12px 0;
padding: 0.9rem 1.2rem;
margin: 1.4rem 0;
color: var(--gp-text-muted);
font-style: italic;
}
/* HR */
hr {
border: none;
height: 1px;
background: linear-gradient(90deg,
transparent,
var(--gp-primary),
var(--gp-secondary),
transparent);
margin: 2.4rem 0;
}
/* Tables */
table {
border-collapse: separate;
border-spacing: 0;
border-radius: 14px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(122, 170, 150, 0.07);
}
th {
background: linear-gradient(135deg, #3d6b52, #5a8a6e, #92ad9e);
color: #fff;
font-weight: 550;
letter-spacing: 0.02em;
padding: 0.7rem 1rem;
}
td {
background: var(--gp-surface);
border-bottom: 1px solid rgba(122, 170, 150, 0.12);
}
/* Scroll reveals */
.godspark-reveal {
opacity: 0;
transform: translateY(var(--gp-distance));
transition:
opacity var(--gp-duration) var(--gp-ease),
transform var(--gp-duration) var(--gp-ease);
}
.godspark-reveal.is-visible {
opacity: 1;
transform: translateY(0);
}
.godspark-reveal.is-visible > * {
opacity: 0;
transform: translateY(var(--gp-distance));
transition:
opacity var(--gp-duration) var(--gp-ease),
transform var(--gp-duration) var(--gp-ease);
}
.godspark-reveal.is-visible > *:nth-child(1) { transition-delay: 0.00s; }
.godspark-reveal.is-visible > *:nth-child(2) { transition-delay: 0.08s; }
.godspark-reveal.is-visible > *:nth-child(3) { transition-delay: 0.16s; }
.godspark-reveal.is-visible > *:nth-child(4) { transition-delay: 0.24s; }
.godspark-reveal.is-visible > *:nth-child(5) { transition-delay: 0.32s; }
.godspark-reveal.is-visible > *:nth-child(6) { transition-delay: 0.40s; }
.godspark-reveal.is-visible > * {
opacity: 1;
transform: translateY(0);
}
/* Cursor glow (opt-in attribute) */
[gp-glow]::after,
.gp-glow-active::after {
content: "";
position: fixed;
width: 400px;
height: 400px;
border-radius: 50%;
pointer-events: none;
z-index: 999998;
background: radial-gradient(
circle,
rgba(141, 184, 160, 0.30) 0%,
rgba(160, 130, 210, 0.16) 32%,
transparent 68%
);
transform: translate(-50%, -50%);
opacity: 0;
left: -400px;
top: -400px;
transition: opacity 0.45s ease;
will-change: left, top, opacity;
}
[gp-glow]::after,
.gp-glow-active::after {
opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
[gp-glow]::after,
.gp-glow-active::after {
display: none !important;
}
.godspark-reveal {
opacity: 1;
transform: none;
transition: none;
}
.godspark-reveal.is-visible > * {
opacity: 1;
transform: none;
transition: none;
}
}
/* Scrollbar */
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: var(--gp-bg);
}
::-webkit-scrollbar-thumb {
background: linear-gradient(180deg,
var(--gp-primary),
var(--gp-accent),
var(--gp-secondary));
border-radius: 99px;
}
/* Neutralize default Zensical color cycling without breaking toolbar icons */
.md-header,
.md-header__inner,
.md-header__button,
.md-icon,
[data-md-color-component="header"] {
animation: none !important;
}
h1, h2, h3, h4, h5, h6,
article h1, article h2, article h3 {
animation: none !important;
background: none !important;
-webkit-text-fill-color: var(--gp-text);
background-clip: unset !important;
color: var(--gp-text);
}
/* Selection/focus */
::selection {
background: var(--gp-primary);
color: #fff;
}
:focus-visible {
outline: 2px solid var(--gp-primary);
outline-offset: 3px;
border-radius: 4px;
}
.beacon-icons a .md-icon,
.beacon-icons button .md-icon {
color: inherit;
}
/* Larger logo in header */
.md-header__button.md-logo {
padding: 0.4rem;
}
.md-header__button.md-logo img {
height: 3.2rem;
width: auto;
}
/* Hide the site name text in the header nav bar, keep layout intact */
.md-header__title .md-ellipsis {
visibility: hidden;
}
/* Homepage refined */
.wp-divider {
border: none;
height: 1px;
margin: 2.8rem auto 3.2rem;
max-width: 86%;
background: linear-gradient(
90deg,
transparent,
var(--gp-secondary),
var(--gp-primary),
var(--gp-accent),
transparent
);
opacity: 0.42;
}
.wp-spacer {
height: 0;
opacity: 0;
}
/* Contribution section card */
.wp-section {
background: var(--gp-card-bg);
border: 1px solid var(--gp-card-border);
border-radius: 26px;
padding: 2rem 2.2rem;
backdrop-filter: blur(14px) saturate(145%);
-webkit-backdrop-filter: blur(14px) saturate(145%);
box-shadow: var(--gp-card-shadow);
position: relative;
z-index: 1;
}
.wp-section h2,
.wp-section h3 {
margin-top: 0;
font-weight: 700;
color: var(--gp-text);
}
.wp-section ul,
.wp-section ol {
padding-left: 1.35rem;
line-height: 1.8;
}
.wp-section li {
margin: 0.28rem 0;
}
.wp-section li::marker {
color: var(--gp-primary);
}
/* Tighter hero composition on index */
.index .godspark-hero {
margin-bottom: 0.6rem;
box-shadow: none;
border: none;
background: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
.index .godspark-hero img {
max-height: 420px;
}
/* Print */
@media print {
body {
background: #fff !important;
color: #000 !important;
}
h1, h2, h3, h4, h5, h6 {
color: #000 !important;
}
.gp-glow-active::after,
[gp-glow]::after {
display: none !important;
}
}

View file

@ -0,0 +1,72 @@
---
icon: material/hand-heart
---
# Collective Awakening
Awakening is often described as an individual journey, but it has never been a solo project. Consciousness shifts ripple through groups, communities, and fields — and when enough people hold the same frequency simultaneously, something in the collective field changes.
---
## The power of mass intention
Decades of research on group meditation — particularly large Transcendental Meditation assemblies — has documented statistically significant reductions in crime, violence, hospital admissions, and traffic fatalities when a critical mass (roughly the square root of 1% of a population) meditates together.
The mechanism is debated. The data is not.
When you join a mass meditation — whether online or in person — you are not just calming your own nervous system. You are contributing to a field. The intention you hold for peace, for the most positive timeline, is not private. It radiates.
---
## Creating your own circle
You don't need to wait for a global event. Gather two or three people and sit together:
1. **Start with silence** — 5 to 15 minutes of shared stillness
2. **State an intention** — "We are here for peace. We are here for the most positive timeline for humanity."
3. **Visualize together** — describe, aloud or silently, what that world looks like, feels like, sounds like
4. **Close with sound** — a bell, a chant, a simple "om"
Do it weekly. The consistency matters more than the size.
---
## Crystallizing the vision
Between gatherings, make something tangible:
- **Doodles or drawings** — what does the peaceful world look like through your eyes?
- **Written statements of intent** — short, present-tense declarations: *"Clean water flows freely. Children laugh without fear. Elders are honored. The land is tended."*
- **A shared board or album** — where each person contributes their vision of the positive timeline
These artifacts are not wishful thinking. They are anchors. When the external world looks chaotic, the images and words you've created together remind you what you are building toward — and that you are building it together.
---
## Conscious activism
Activism doesn't require anger. The most effective campaigns combine awareness with action:
- **Awareness**: educate your community — host film screenings, share resources, write clearly about what's happening
- **Action**: engage with key decision makers — local council members, school boards, community leaders
- **Campaigns**: focused efforts on specific issues — stopping a harmful development, protecting green space, defending digital rights
Do this offline where possible. Face-to-face relationships with decision makers are harder to dismiss than emails. And when you work alongside others in person, the trust built is its own reward.
---
## The compass
Through all of this, hold a simple compass:
- Is this action arising from love or from fear?
- Is it connecting people or dividing them?
- Is it building something or only tearing something down?
Fear-based activism burns out. Love-based activism regenerates. The most radical thing you can do — genuinely radical — is to remain joyful while fighting for what matters.
---
**Related:** [Spiritual Hygiene](./spiritual-hygiene.md) — keeping your own field clear so you can contribute cleanly to the collective.
*What does the most positive timeline look like to you — in one sentence?*

View file

@ -0,0 +1,88 @@
---
icon: material/crowd
---
# Community Sovereignty
Sovereignty is not something you achieve alone. It is built in relationship — with the land, with the people who grow food, with neighbors who share skills, and with networks that operate outside the extractive economy.
---
## Food: know your farmer
Every dollar spent at a supermarket feeds a system designed to concentrate wealth and power. The alternative is older than capitalism: direct relationships with the people who produce what you consume.
- Join a local CSA (community-supported agriculture)
- Buy from farmers' markets — talk to the people behind the stall
- Trade skills: help with a harvest, offer web design, teach a class
- Grow something yourself, even if it's just herbs on a windowsill
When your food comes from someone you know, the transaction becomes a relationship. That relationship is the foundation of a parallel economy.
!!! warning "The monopoly problem"
[Watch this](https://www.youtube.com/watch?v=nLZV5EesNNI) to understand how deeply monopolized the food system is. The solution is not to find ethical products within the system — it's to build outside it.
---
## Private Members Associations and collectives
In many jurisdictions, Private Members Associations (PMAs) allow groups to operate outside the regulatory frameworks designed for commercial entities. They are not businesses — they are associations of people exercising their right to associate and self-govern.
PMAs can be used for:
- Education cooperatives outside state curricula
- Health collectives practicing natural medicine
- Legal support networks with aligned professionals
- Community asset ownership (land, equipment, housing)
Research what's possible in your jurisdiction. Find lawyers and politicians with genuine integrity — they exist, often working quietly — who can help push back on overreach in climate policy, health mandates, surveillance expansion, and data center proliferation.
---
## Seva: service without expectation
*Seva* is selfless service — giving without any expectation of return. It is the antidote to the transactional mindset that pervades modern life.
Start small:
- Cook a meal for someone who is struggling
- Sit and listen to someone who is lonely — just listen, no advice
- Clean a section of your local park or river
- Offer your skills (legal, technical, therapeutic) to those who cannot pay
Do three kind things every week that you tell no one about. The anonymity is part of the practice — it purifies the motivation.
---
## Building freedom networks
Create community links — both offline and online — that support and develop:
| Domain | What to build |
|--------|--------------|
| **Education** | Study groups, skill-shares, unschooling collectives |
| **Technology** | Local mesh networks, open-source tooling, privacy workshops |
| **Health** | Herbal medicine circles, movement groups, mental/emotional/spiritual support pods |
| **Legal** | Network of integrity-driven lawyers, know-your-rights workshops |
| **Economic** | Barter networks, time banks, local currencies, PMAs |
The goal is not to secede from society. It is to build parallel structures so robust that when the extractive systems falter, communities don't.
---
## Legally minimizing extraction
Tax avoidance within the law is not evasion — it is resource sovereignty. Learn about:
- PMAs and trusts for collective asset holding
- Agricultural exemptions where applicable
- Non-profit structures for community-serving work
- Barter and gift economies that operate outside taxable transactions
Consult aligned professionals. The goal is to keep resources circulating within the community rather than being siphoned upward.
---
**Related:** [Digital Sovereignty](./digital-sovereignty.md) — because freedom networks need free infrastructure.
*Who in your community could you reach out to this week?*

View file

@ -0,0 +1,73 @@
---
icon: material/shield-lock
---
# Digital Sovereignty
Digital sovereignty means owning your own digital life — the hardware, the software, the data, the networks. It is the recognition that every time you use a "free" service, you are the product. Taking back control is not a technical exercise; it is a spiritual one.
---
## The hardware you already own
You don't need a new device. An old laptop — the one gathering dust — can run Linux perfectly. Modern distributions like Linux Mint, Ubuntu, or Fedora breathe new life into aging hardware and free you from operating systems designed to extract data.
For phones, the path is similar:
| Device | System | Notes |
|--------|--------|-------|
| Second-hand Google Pixel | [GrapheneOS](https://grapheneos.org/) | Privacy-hardened Android, no Google services |
| Various Android phones | [/e/OS (Murena)](https://murena.com/) | De-googled Android with cloud services |
| Various devices | [postmarketOS](https://postmarketos.org/) | True Linux on mobile, still maturing |
!!! note "Start with the phone"
Your phone is the most intimate surveillance device you own. It knows your location, your contacts, your voice, your typing patterns, your sleep schedule. Moving to a de-googled OS is the single highest-impact step you can take.
---
## Network sovereignty
**Switch from WiFi to Ethernet** for your main computer. It's faster, more stable, and eliminates constant radio-frequency exposure at close range.
**On your phone**: switch 5G to 4G (lower frequency = less power = less exposure). Keep your phone on airplane mode when not actively needed. Keep it away from your body — not in a pocket, not against your head. Zero wearables (no smartwatch, no fitness tracker, no bluetooth earbuds).
**VPN**: A simple, trusted VPN prevents your internet provider from building a profile of every site you visit. Choose one with a clear no-logging policy and preferably based outside surveillance alliances.
**Meshtastic**: When the grid is not your friend, build your own. [Meshtastic](https://meshtastic.org/) lets you create off-grid, encrypted text networks using inexpensive LoRa radios. It's community infrastructure — no cell towers, no subscriptions, no central authority.
---
## Erasing your digital footprint
Move away from Google piece by piece:
| Instead of | Use |
|-----------|-----|
| Gmail | [Proton Mail](https://proton.me/mail), self-hosted mail |
| Google Drive | [Syncthing](https://syncthing.net/), [Nextcloud](https://nextcloud.com/) |
| Google Photos | [Immich](https://immich.app/), local storage |
| Google Docs | [CryptPad](https://cryptpad.fr/), local office suite |
The principle is simple: **self-hosted first, local-first, privacy-first**. If your data lives on someone else's computer, it is not your data.
---
## Passwords and keys
Use [KeePassXC](https://keepassxc.org/) — a local, offline, open-source password manager. Unlike browser-based password managers or online services, your password database lives on your device. You control the file. Nobody can leak what they don't have.
Generate unique passwords for every service. Use a hardware security key (like a YubiKey) where possible. Treat your digital keys as carefully as the keys to your home.
---
## The bigger picture
This isn't about becoming a hermit with a tin-foil hat. It's about intentionality. Every service you leave is a vote. Every open-source tool you adopt strengthens an alternative ecosystem. Every friend you help migrate multiplies the effect.
Digital sovereignty is not isolation — it's the foundation for authentic connection.
---
**Related:** [Digital Wellness](../../practices/digital-wellness.md) — sovereignty begins with what you consume.
*What's one service you could migrate away from this month?*

View file

@ -0,0 +1,72 @@
---
icon: material/compass
---
# Finding Your Purpose
Beyond making a living lies the question that has quietly followed you for years: *why am I really here?* Not your job title. Not your roles. The thing that makes your heart come alive and, in doing so, lifts others up.
---
## The passion that was always there
For many, purpose is not something you find — it's something you remember. It was there when you were a child, before the world told you to be practical. It was in the activities that made you lose track of time.
Ask yourself:
- What would I do if money were not a concern?
- What topic could I talk about for hours without tiring?
- What makes me feel most alive — and who benefits when I am in that state?
- What challenge have I lived through that I could help others navigate?
That last question is often the most direct path. The wound becomes the gift.
---
## When suffering becomes service
Look at the most difficult experience of your life — the one you wouldn't wish on anyone. Now consider: who is going through that right now, alone, with no guide?
Your experience is not just yours. It is a map that someone else desperately needs. When you offer it — not as a savior but as someone who has walked a similar road — you transform suffering into meaning.
This is not about becoming a coach or therapist (though it could be). It's about being available: mentoring one person, writing honestly about what you learned, starting a small group, or simply being the person you wish had been there for you.
---
## Seva: purpose in action
Purpose without service becomes self-absorption. *Seva* — selfless service — grounds your gifts in the real world:
- Cook and deliver meals in your community
- Offer your time to simply listen — no advice, no fixing
- Clean a park or river without posting about it
- Share your skills (legal, technical, therapeutic) with those who cannot afford them
Do three kind things every week that you tell no one about. The secrecy purifies the motivation. You're not building a brand — you're building a life.
---
## The tribe you're building
Your purpose will attract people. Not everyone — just the ones who resonate with what you're putting into the world. This is your tribe: not a following, but a mutual support network of people moving in the same direction.
Spend more time with people who are on a positive frequency — those who energize rather than drain. You can still feel compassion for those on a lower frequency, but you are not obligated to be friends with them. Your energy is finite. Spend it where it grows.
---
## The daily turn toward purpose
You don't need to quit your job tomorrow. Start with:
- One hour a week on the thing that lights you up
- One conversation with someone doing what you feel called to do
- One small act of service, unannounced
- One visualization, morning and night, of the future you are building
Purpose is not a destination. It is a direction you calibrate toward, daily, with each small choice.
---
**Related:** [Community Sovereignty](./community-sovereignty.md) — purpose expressed through collective action.
*What challenge have you lived through that someone else needs help with right now?*

19
docs/teachings/index.md Normal file
View file

@ -0,0 +1,19 @@
---
icon: material/book-open-variant
---
# Teachings
Deeper explorations for when a practice opens a door and you want to walk through it. Frameworks, context, and the why beneath the how.
<div class="grid cards" markdown>
- [:material-shield-lock: **Digital Sovereignty**](digital-sovereignty.md) — Own your hardware, software, data, and networks
- [:material-crowd: **Community Sovereignty**](community-sovereignty.md) — Parallel economies, PMAs, seva, freedom networks
- [:material-spa: **Spiritual Hygiene**](spiritual-hygiene.md) — Cleanse your space, set intention, sound as medicine
- [:material-compass: **Finding Your Purpose**](finding-purpose.md) — Passion, suffering into service, building your tribe
- [:material-hand-heart: **Collective Awakening**](collective-awakening.md) — Mass intention, circles, crystallizing the vision
</div>
These are living documents. Return to them. They'll mean something different each time.

View file

@ -0,0 +1,75 @@
---
icon: material/spa
---
# Spiritual Hygiene
Just as you wash your body, your space and energy field require regular cleansing. This is not superstition — it is the recognition that environments hold residue, and that your intention shapes what you encounter.
---
## Cleansing your space
Your bedroom is the most important room to tend. You spend a third of your life there, unconscious and receptive.
- Open windows daily — stagnant air holds stagnant energy
- Remove electronics from the room, or at minimum cover screens
- Declutter: every object carries a subtle energetic weight
- Use sound: a bell, singing bowl, or simple clapping in corners breaks up density
- Burn natural incense or diffuse pure essential oils (frankincense, sage, palo santo)
??? question "How often should I cleanse?"
A light daily clearing (open window, intention setting) and a deeper weekly reset (sound, smoke, decluttering) is a sustainable rhythm. After arguments, illness, or visits from heavy energy, cleanse immediately.
---
## Setting intention and calling guides
Before sleep, state clearly — aloud or internally:
> *I invite only energies of the highest light to interact with me. My space is sovereign. My field is clear.*
You don't need to believe in guides for this to work. The practice is about setting a boundary and orienting your awareness toward what is loving, clear, and true. Whatever your framework — ancestors, angels, higher self, or simply the clearest version of your own consciousness — the act of calling it in is what matters.
---
## Sound as medicine
The frequencies you surround yourself with shape your nervous system. Consider:
- **432 Hz** — associated with heart coherence and natural resonance
- **528 Hz** — often called the "love frequency," used in DNA repair research
- **Natural classical** — Bach, Debussy, Ravi Shankar — music that creates space rather than filling it
- **Kirtan and mantra** — collective chanting that synchronizes heart rates and entrains the group field
The rule is simple: if a song has a single negative word or message, skip it. The subconscious absorbs everything. Curate your sound environment as carefully as your food.
---
## Group singing, toning, and joy
Human voices together are one of the most powerful frequency generators available. Group singing — kirtan, toning, community choirs, or just friends around a fire — synchronizes nervous systems, releases oxytocin, and creates a field of shared vibration that lingers long after the sound stops.
Pair this with:
- **Uplifting art** — surround yourself with images that open the heart
- **Light-hearted comedy** — laughter is a genuine cleansing practice
- **Positive energy events** — gatherings where the purpose is simply to feel good together
"Joy maxxing" is not avoidance. It is deliberate nervous system nourishment.
---
## Mass meditations and peace visualization
When large numbers of people hold the same intention simultaneously, something measurable shifts. Research on transcendental meditation groups has shown reductions in crime rates, hospital admissions, and conflict when a critical mass is reached.
Join global mass meditations when they are called. Or gather a small group — even three people — and sit together with the intention of peace and the most positive timeline for humanity.
Create something tangible to crystallize the intention: a doodle, a piece of art, a short written statement of what that positive timeline looks like *for you*. Make it specific. Make it beautiful. Keep it visible.
---
**Related:** [Daily Sadhana](../../practices/daily-sadhana.md) — spiritual hygiene as daily practice.
*What's the first thing you'll clear from your bedroom tonight?*

View file

@ -1 +1,16 @@
Hi # _{site title here}_
<figure class="godspark-hero" markdown="1">
<img src="assets/images/hero.jpg" alt="Awakening" />
<figcaption>Nature is the oldest teacher of awareness.</figcaption>
</figure>
<p class="intro-lead">
A quiet invitation into presence. This is a living space for reigniting the spark inside — not a performance, but a shared practice.
</p>
## How to contribute
- **Add a reflection** — short notes, practices, or questions
- **Plant an idea** — link into new themed pages
- **Tend the tone** — kind, grounded edits keep the garden coherent

File diff suppressed because one or more lines are too long

View file

@ -8,16 +8,19 @@
[project] [project]
repo_url = "https://bali.krystl.org/aja/up"
repo_name = "Contribute"
# The site_name is shown in the page header and the browser window title # The site_name is shown in the page header and the browser window title
# #
# Read more: https://zensical.org/docs/setup/basics/#site_name # Read more: https://zensical.org/docs/setup/basics/#site_name
site_name = "up" site_name = "Tree of Ascension Docs"
# The site_description is included in the HTML head and should contain a # The site_description is included in the HTML head and should contain a
# meaningful description of the site content for use by search engines. # meaningful description of the site content for use by search engines.
# #
# Read more: https://zensical.org/docs/setup/basics/#site_description # Read more: https://zensical.org/docs/setup/basics/#site_description
site_description = "Tools for a more conscious and free humanity" site_description = "A living guide for awakening consciousness — practices, teachings, and community for the journey upward"
# The site_author attribute. This is used in the HTML head element. # The site_author attribute. This is used in the HTML head element.
# #
@ -27,7 +30,7 @@ site_author = "aja"
# The site_url is the canonical URL for your site. When building online # The site_url is the canonical URL for your site. When building online
# documentation you should set this. # documentation you should set this.
# Read more: https://zensical.org/docs/setup/basics/#site_url # Read more: https://zensical.org/docs/setup/basics/#site_url
#site_url = "https://www.example.com/" site_url = "https://tree.ad/"
# The copyright notice appears in the page footer and can contain an HTML # The copyright notice appears in the page footer and can contain an HTML
# fragment. # fragment.
@ -57,7 +60,7 @@ Copyright &copy; 2026 The authors
# #
# Read more: https://zensical.org/docs/customization/#additional-css # Read more: https://zensical.org/docs/customization/#additional-css
# #
#extra_css = ["stylesheets/extra.css"] extra_css = ["stylesheets/extra.css"]
# With the `extra_javascript` option you can add your own JavaScript to your # With the `extra_javascript` option you can add your own JavaScript to your
# project to customize the behavior according to your needs. # project to customize the behavior according to your needs.
@ -65,7 +68,7 @@ Copyright &copy; 2026 The authors
# The path provided should be relative to the "docs_dir". # The path provided should be relative to the "docs_dir".
# #
# Read more: https://zensical.org/docs/customization/#additional-javascript # Read more: https://zensical.org/docs/customization/#additional-javascript
#extra_javascript = ["javascripts/extra.js"] extra_javascript = ["javascripts/extra.js"]
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Section for configuring theme options # Section for configuring theme options
@ -83,7 +86,7 @@ Copyright &copy; 2026 The authors
# Read more: # Read more:
# - https://zensical.org/docs/customization/#extending-the-theme # - https://zensical.org/docs/customization/#extending-the-theme
# #
#custom_dir = "overrides" custom_dir = "overrides"
# With the "favicon" option you can set your own image to use as the icon # With the "favicon" option you can set your own image to use as the icon
# browsers will use in the browser title bar or tab bar. The path provided # browsers will use in the browser title bar or tab bar. The path provided
@ -118,17 +121,17 @@ features = [
# https://zensical.org/docs/setup/header/#announcement-bar # https://zensical.org/docs/setup/header/#announcement-bar
"announce.dismiss", "announce.dismiss",
# If you have a repository configured and turn on this feature, Zensical # If yeu have a repository configured and turn on this feature, Zensical
# will generate an edit button for the page. This works for common # will generate an edit button for the page. This works for common
# repository hosting services. # repository hosting services.
# https://zensical.org/docs/setup/repository/#content-actions # https://zensical.org/docs/setup/repository/#content-actions
#"content.action.edit", "content.action.edit",
# If you have a repository configured and turn on this feature, Zensical # If you have a repository configured and turn on this feature, Zensical
# will generate a button that allows the user to view the Markdown # will generate a button that allows the user to view the Markdown
# code for the current page. # code for the current page.
# https://zensical.org/docs/setup/repository/#content-actions # https://zensical.org/docs/setup/repository/#content-actions
#"content.action.view", "content.action.view",
# Code annotations allow you to add an icon with a tooltip to your # Code annotations allow you to add an icon with a tooltip to your
# code blocks to provide explanations at crucial points. # code blocks to provide explanations at crucial points.
@ -254,7 +257,7 @@ features = [
# option in the "theme" subsection. The logo must be a relative path to a file # option in the "theme" subsection. The logo must be a relative path to a file
# in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set: # in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set:
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
#logo = "assets/logo.png" logo = "assets/images/tree-ad-logo.svg"
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# If you don't have a dedicated project logo, you can use a built-in icon from # If you don't have a dedicated project logo, you can use a built-in icon from
@ -289,11 +292,15 @@ features = [
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
[[project.theme.palette]] [[project.theme.palette]]
scheme = "default" scheme = "default"
primary = "green"
accent = "teal"
toggle.icon = "lucide/sun" toggle.icon = "lucide/sun"
toggle.name = "Switch to dark mode" toggle.name = "Switch to dark mode"
[[project.theme.palette]] [[project.theme.palette]]
scheme = "slate" scheme = "slate"
primary = "green"
accent = "teal"
toggle.icon = "lucide/moon" toggle.icon = "lucide/moon"
toggle.name = "Switch to light mode" toggle.name = "Switch to light mode"