From b7a59be0d7a3cda29c96e04be665bfab7f414dcb Mon Sep 17 00:00:00 2001 From: trilium-share-gruvbox Date: Mon, 7 Sep 2026 19:36:30 +0200 Subject: [PATCH] Theme: switch blog to Coffee dark / Coffee Latte light (megabyte0x/omarchy-coffee-theme, MIT); theme-aware 3D viewer + palette + docs --- README.md | 16 +- THIRD_PARTY_LICENSES.md | 4 +- assets/palette.png | Bin 21032 -> 24653 bytes scripts/3d_model_viewer.js | 6 +- theme/blog_share_theme.css | 386 ++++++++++++++++++------------------- 5 files changed, 206 insertions(+), 206 deletions(-) diff --git a/README.md b/README.md index 028d2e4..4c6d8bc 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -# Trilium Share – Harbor Blog System +# Trilium Share – Coffee Blog System [![License](https://img.shields.io/badge/License-GPL--3.0-fb4934)](LICENSE) [![Live demo](https://img.shields.io/badge/Live%20demo-richard.familie--zink.org-8ec07c)](https://richard.familie-zink.org) [![TriliumNext](https://img.shields.io/badge/TriliumNext-Public%20Share-83a598)](https://github.com/TriliumNext/Trilium) -[![Theme](https://img.shields.io/badge/Theme-Harbor-e75a50)](https://github.com/HANCORE-linux/omarchy-harbor-theme) +[![Theme](https://img.shields.io/badge/Theme-Coffee-e0a15c)](https://github.com/megabyte0x/omarchy-coffee-theme) [![Built with](https://img.shields.io/badge/Built%20with-Opencode-fe8019)](https://opencode.ai) [![Model](https://img.shields.io/badge/Model-Deepseek%20V4%20Flash-d3869b)](https://www.deepseek.com/) > **Note:** This theme and blog system was created with the help of > [**Opencode**](https://opencode.ai) and **Deepseek V4 Flash**. -A complete **public-share blog system + Harbor theme** for [TriliumNext](https://github.com/TriliumNext/Trilium). +A complete **public-share blog system + Coffee theme** for [TriliumNext](https://github.com/TriliumNext/Trilium). It turns a normal Trilium note tree into a themed, searchable blog with categories, an RSS feed, a sitemap, a digital garden (growth states) and client-side rendering of Mermaid, Excalidraw and mind-map notes. @@ -18,13 +18,13 @@ mind-map notes. Everything is driven by Trilium's built-in **Public Share** feature plus a few frontend/backend scripts – no external dependencies (except `highlight.js`, vendored in `lib/`). -![Harbor palette](assets/palette.png) +![Coffee palette](assets/palette.png) -*Palette from the [HANCORE-linux/omarchy-harbor-theme](https://github.com/HANCORE-linux/omarchy-harbor-theme) (Harbor light / Harbordark) repository, MIT licensed.* +*Palette from the [megabyte0x/omarchy-coffee-theme](https://github.com/megabyte0x/omarchy-coffee-theme) (Coffee / Coffee Latte) repository, MIT licensed.* ## Features -- Harbor light/dark theme for the share, with a theme toggle in the header. +- Coffee dark / Coffee Latte light theme for the share, with a theme toggle in the header. - Blog index, category pages, sub-categories, tags and tag overview. - **Menu sorting**: articles in the left menu are sorted by publication date (newest first) and labelled `Fri 2026-08-28 ` automatically. All date displays @@ -66,7 +66,7 @@ no external dependencies (except `highlight.js`, vendored in `lib/`). |---|---|---| | `blog_generator.js` | backend script that generates index, feed, sitemap, search data, category & tag pages | code, `application/javascript;env=backend` | | `blog_publish_manager.js` | backend script that mirrors notes between `Unpublished` and the blog | code, `application/javascript;env=backend` | -| `theme/blog_share_theme.css` | the Harbor share theme (Harbor light / Harbordark) | code, `text/css` | +| `theme/blog_share_theme.css` | the Coffee share theme (Coffee / Coffee Latte) | code, `text/css` | | `theme/favicon.svg` | default site favicon | code (SVG) | | `theme/cookie.woff2` | "Cookie" font for the Buy me a coffee button | file, `font/woff2` | | `lib/highlight.js` | vendored highlight.js | code, `application/javascript` | @@ -297,7 +297,7 @@ server { ## Customisation -- **Theme**: edit `theme/blog_share_theme.css` (Harbor light/dark via `html.theme-light/dark`). +- **Theme**: edit `theme/blog_share_theme.css` (Coffee / Coffee Latte via `html.theme-light/dark`). - **Buy me a coffee**: edit `scripts/bmc_button.js` (link, text, copyright) – the font is referenced via `__COOKIE_FONT_ID__`. - **Category logos**: copy the `examples/` icon + `ignis8_menu_icon.js` pattern to give a diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 2734cdf..3826dbc 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -8,8 +8,8 @@ The following files in this repository are **not** covered by the GPL-3.0 and ke | `lib/highlight.js` | [Highlight.js](https://github.com/highlightjs/highlight.js) v11.9.0 | [BSD-3-Clause](#bsd-3-clause) | | `lib/hljs_line_numbers.js` | [highlightjs-line-numbers](https://github.com/yury-dymov/highlightjs-line-numbers) | [MIT](#mit-license) | | `theme/cookie.woff2` | "Cookie" font, © 2011 [Ania Kruk](https://fonts.google.com/specimen/Cookie) | [SIL Open Font License 1.1](https://openfontlicense.org/) | -| `assets/palette.png` | Harbor / Harbordark palette image generated from [HANCORE-linux/omarchy-harbor-theme](https://github.com/HANCORE-linux/omarchy-harbor-theme) (repo: MIT) | [MIT](#mit-license) | -| `theme/blog_share_theme.css` | Harbor light / Harbordark color scheme from [HANCORE-linux/omarchy-harbor-theme](https://github.com/HANCORE-linux/omarchy-harbor-theme) (repo: MIT) | [MIT](#mit-license) | +| `assets/palette.png` | Coffee / Coffee Latte palette image generated from [megabyte0x/omarchy-coffee-theme](https://github.com/megabyte0x/omarchy-coffee-theme) (repo: MIT) | [MIT](#mit-license) | +| `theme/blog_share_theme.css` | Coffee / Coffee Latte color scheme from [megabyte0x/omarchy-coffee-theme](https://github.com/megabyte0x/omarchy-coffee-theme) (repo: MIT) | [MIT](#mit-license) | | `lib/3d/three.min.js`, `lib/3d/OrbitControls.js`, `lib/3d/STLLoader.js` | [three.js](https://github.com/mrdoob/three.js) r128 | [MIT](#mit-license) | | `lib/3d/occt-import-js.js`, `lib/3d/occt-import-js.wasm` | [occt-import-js](https://github.com/kovacsv/occt-import-js) (OpenCASCADE, WASM) | [LGPL-2.1](#lgpl-21) | | `lib/3d/occt-wasm-bundle.js`, `lib/3d/occt-wasm.wasm` | [occt-wasm](https://github.com/andymai/occt-wasm) (OpenCASCADE **OCCT V8**, WebAssembly, esbuild-bundled `OcctKernel`) | [MIT OR Apache-2.0](#mit-license) | diff --git a/assets/palette.png b/assets/palette.png index b5bf87bc6e0b7f702fcedcf4ebe8fd856a189749..e42e721d68852f00c0cd581751e22a71ee8469a0 100644 GIT binary patch literal 24653 zcmeFZX;@R|_BU*gt^BJM&N&|IQ3UD{NEHD^2APstTQMM{6#mJ?D8oy`SFedY|h#`^&!e&d%QZ zUV9C{^;_${fBw$TYv=ZT+qZ1lvJ-sfn{!*Xe3HFo%SW&Oy3KIr>#LYb!|vmllfEan zYgCkjnyqY5yhZeed5({AEP1iQ;Aex!V_;mLn)zrHE76}}(dpW8Lp zkF!7eaIodqul{@VhcNz6mBc`C+SY#zo-?sSuACdRL?!n0`?yo?wT31Swy{?4JJwBS zOrLJBW{?|zT_Muy)y$~;L#zmq0;XChGzz0#mb`Ay|13+A(+dK9a_s2Vad+kD9R)jC zprVIBNSRA<@Zs>Zb5#?Qu5f;}S6<};Y%h6pCVqXatG^NHgV1ku8&hLtI6)RND@qES zz|C`9W5=h3d(;78@4~3dy=p>AOtZF$RXLSZh!Yr33x0aukG;2Hx-kM2o3}2h-9)QZ z3b&rqh)qsTc{`Th*>3?|A2TAXl!u*@{t~axMAn4^KWOVUz1V)&TKL@J0_ZV0rJ2zl znl`h#5~U_{2(|5k3Im z#OhxD&CgpI%oW|4yYrDBv zoo?zN{rV||ptC;?+}m#LSzUjj_BSo_ZbVPFy-5rC^I(>Ki>kZv*;DnC-NH`lh)hbYlWpq8&= z(}xM{Dbf5)HZ4(do*P46>WXMimrup5 zd{KWbZJw;^^c5<9BChr3f{Vc8aqGj7 zW2rq+Ec{Fp&Qaraqt9mcsA6+7Vwc<5$7LSs#A1&9YynL7iQCiG?nTnO>vR*&`cx2| z!%%ES@L_x5%&QG;GX@h9a(K$Z%CkVh(boAr-G-0*VJy#JV+8BB-6O#G;^51*JXrDU zYuztE@J+>GP3;Tf4xMiAo{^5&z8&I}( zFI-TtLD+ZVzJ;z4)#6AB6Acn{g-IqCC`8n8@VG#4lB9>-9OMo5x`KKUUlnSNS(lZT z;8B<ogk+wS@0y*pi^**@C~>U|s*EywaTyF%NSN7XGrRb}n0oeX{lV z7ZkjfC6w|+`ZIRFS#@@`mi;?0=x_r?Xc9t736SJMEn^vhU{ck^A4)Oh~;TynHm3vwf8RX zQ59UN2sZ@?q1-MQ%MXlGU?BS8?#3+H;WBG?JJxzj;vMiLs;BpnV707qO(NM{)a_iC z7Sg6-7(*Tbk0V##9K?&`@;c!O1fDhpxCC0`RrjwIbFi{$-ojzhXPH8cWqkFw&Ni8p zQ-qZbIwl?fXv|)HbucMx4QOh|{&jde+1es|ZN!~4R3(D>!b7E%?Q|~4UGnk<47w?W zcX$it%#6=i2bDGt7R*^OowUvCL3yVE?%WRl9HARP;K_L?b5mQ(^iaKSq1Z3Zv0nGJ zY>Zwo`pB_Va#7+tI_8C8*=DLOw6#4h4w)-OF{eG#zjau;o)6qND_3MU`vk(UZ_?)7 zvO5@_;KMOhFjEUq!q+*UBJt#b9t!i?pl&nEhe?u-&cs;d7>mwFajWp{co$gI#18yI zdx)sLONa*xe7mk9sv=+Swa~|0?c_b(Rk^8|t^|(~DIx)S;00HY2(?3nvgP!??xc+k zRlilka27GBX*^+dU=%QzO&dCi3;{66Bw&{+4s6gvtbbFcLkekc&d3Rr-!t^o`b+sg z$4+D_9w=grv)wY&Qi~rM3^;o-;!3}LnqG(w|9^`&1qqqnEI}x(WHobBG@ll7I98{u z_Y8797~F-f2#QPhg@)F{`Q$iDY#CecY~m zEW2+94XZtNu)p%CXq-2<+hW+CHi!NYr#>N-hl*R7IC)+>=b^9$jI+gA8uUAJk~z&O zkx?xf=Y);*UY0gyV_)vXuin42{KQW}|M9sKNN~5ji(X=;OU{sFa_yo2#Pq+@o%e<; zJSw~uFavT`=N$KQn=6Q{-Ru5_l~!V@j`=DJFb$%If^nzxYBVFL$p9*FE35$8;}B`& zf}`)eC5q7QmF72IGa$83w5~r%m8bHnO;ut|#c*Q}VG- z26DWxjE6xev?NQWk{}7HghI>wBjs9n_X}sAL?=hr&f!n@SOj>2%gzp~ z!MMY*cP%rIz=jTsN+VT`ddym}y-%%Qk(*7hYTd1_qB<%hQi#T#nz49ui7<>a;^;=l z@;z~3!LrhWNpW|T+mzS_hpmI3eJPDYJh$az&@&5kVwq6Gko)5`_aozQs_6qUR(tRB z8ZCVam&^Bo1AWIY&B>0jV&N6pZ;qK*bq8=3p4_o12y;>0g1c;r%6V^hnCN+%x9Dq4 zUSX<*>r#S#Fvtt4knN-2zjv8yP983QwyB@V&Y3KRYf{E#?MZ+gn}7KbeRBP$$CKVF zLe%ftLWmgObLj4sss<+lRvSJns@Ncu;Ryo}I8ghlmkTdUuP+bEyzl|8Rck9kxg0rc z2V57>;B3m=Q1TwsDd4H0`#);1uCp-echDu%ct#h0$JH` z7tHu^k2nI=cy~XA#Z5aAnR}Bq^tX8PF4;%5!`tOa9(t97MbR>Bk#UpTpB!UBVa_=% zu97XQiuTGTmjc1H0F!w1D(1a-8#N0*ajBe~iET-ek5=e7&GY+8`3;*%!ZuUyafQI zV&z6!qY4i`Z?22X(8ewY;e1OIQ+3+})(b(lu+CZc6dGv-9gzN5@)bfm$!yGC|0%Mc zoyL+sJ4_#iXl50BI{jBQNVSA_roU7GRV)4#_-1~g=c9z2$kCT+7G(dMICV+J!mE4u zBuLlnhGvjmY~Lw*iP*}@-ats!e#r-Re7UHvTY-3K9Nm9KUqbZJYweJ;A@tJSLE^D& z^ONFffE|eX0?$w5IPCo$usZq`DKX1i1+9MajwEuQdt#wuSl7w2-ANT{tt~J_alb7I zd?z;T4LOHX9u}nQn|00~B|S#lCJ2a>k?wc~c-(61crCB%WG!}s@H`41R>9rv4&t{R zZ$FWIqk6zSVDhm;f=*_UuHh9xU}Y&dq_zt4>Hm<>bbH!AU-t~w2a%eWA9mZF^3$!( zj*=i8%xcA=*cl8|&q?98(74+c&eWGbc7Z4FPhVPG1hZKyez3*D$QCTzE$iiR+)fM5 z#bw#)LJ#qCTVszTF$tFwm>u~Nzys>QA}JD z^&|8-ltnXB=j2UPuPl+6`(&wzHGB>hp`p@)ys+puk7-&R(#Ugd%!|z#@I4@ zR+Ew3ki~bAB@IQ?2P4z;^tQfPm-bP3_Y3Xtb8T~8!0Qe4=6?P7x{lo{R(FA}1`J}Zso#7n6 z=8eYdEx1;{$t#^%`~Z@V2*Z;{Gfg1%XPY$V7k2Y2V|w?P8ppmqIz3k?9F5gqk!Py$AI&#&uXeSPs=+i}k{kWpn4$a!|Pr z>z#BKmt%rXotjVs@}07-8|FYYp}g(!5q&siXOYlF(A$a=P!qLm_2mJ}P8E3=q*lhFS07cmBsl6-K5@`wA&BH> zZZ5wKD7Y+ z0X7JwlLGK>hNNJe>*&%AFwPAu@vJJ2+PV|vo6=u;Lv?&9+{1gCvNgldN<3=rmwjpaK;(TVf{qh1mtX>+ohW0 zK|P@0<;l}k`?7%o-+aAJCWp6;4tI+S_ovIpOwEA#7sbV-J3XQXC)}w@kB74L02~Qs z)@JZd*lZe?u`h)?1q14(`~c>f;1)w5F3u*;-2b2d#mS%g-O1O#hnoTU_pxlAH$J_@ zp=U!iD=DzmbxxQ4kw`?FKj*k8F!4j~vgl7x57=Ke=ZTfg8GX<2&ZQylH ze>CWu#$KwE<%c6wA?M===TTobfu$t%gBcT=%|+Vu*0MXCrQ1s8&I>|z8Sq5h2z|_I z88emZ)uT~V_y1IB(IZ)X(QPcI>M^+{{UffO3dM?i)SN8O%FrPj!k^AihcVC$Ed(9C zG8OA(ozs~7>Lp;7kgBa`LF}D;`%KDSM_gjND(1Xuu^NN7;osInTec3>(lQ6W?+2bo zuz$)r*q5(?j4%KE(%C(U%M(PMrnDXXfzqP=PMCAN-~JgoSkV?W3C&u35xVDt$zH@1 zP3_7CKwXo0)hzt}qQg?R=j4Gmhg1AID!BBP+-D&KVzM-@P{IXd=<0)R$uS!;+t0H( z@96^FOfLPN>k*?wV7{z4qzW#TgZEiyMy-pn-v$*wc$cNXGJh3wKR_|)j0 z26>pW_?q~8X+0|Qir7n)bgw!XcT!4F6h5F>WTJDc*$$z?$wl_fbkAu0yOaH)?VeBB z1HS|8)P{MSwbMR(<`qU{iMSZ}*iTT6m>76@SV$;fHO*Qt)NAC(IBr1vLaD$Cylvqn zh@(jHLQ;tRwe+N1b6H^eMTAnlD9$4?c+-^B&r;6YDLDYATJO^yvSq3IalUXCQq-8l0TE}*( zbA8$u#UNbJpeKW$?ee1$-B+66ld!c+FZA)1$ua*$SdhAUW>=i=S%)>|jZ~ld8WuCN zM!utljH%d#)u!0S!Ey&$eQM?9?JAAna793};1}A#i!f+z&xZi<5iKPkc{5}d!z0 z2Kh)XghaM{OXK!NomD(d>_eV$08a1&(&d4CM%TvEYVlhayH$ngMJRTqW+KZs)RP|X zbK3BY-_uODS8|*&!1 zSy8Cyw}r!_S?eM(R}VE6uaA$A0J}L2YlQ9HMPV*~ z!SrDK*xM#Tg>RaJ5kX1A?}qaAnpdM}Y-P{pWEt8s5OlGPQA+VpWE9pF66$*{AqL%C zDl-{r;M#cO?xm@D`~d(qO~hyFCmG&>DK8q;4ocSwZ=$IS;5X_&Nq_$!;kBUlSCwzw z-S5iRe(d+dth6ebq-@`b+ZX-c&n7K69|~GfkZ5NKQIjEA(aquj6of6) z8W8n`sJDNqaO_bUmxWW;H zm%5Mw4=IV0_tkxJL%=sZ2;^dm7hS23w`_yvhKG*H!s{BT!b+rzro+L$lG!%>K(=72?|Cb2pN?o5bW!b;Sp~Oww>-5;ufVdS?87?yWNrA58YrjlUkhhE|%LQUYRg`dW$aUX>D3`YOE=~{*GcUJQCc0K>c-prYZTw#1W z)-m&HKT6yYrH#x*v3h2@E}e_5^+q1%IHzk@#qgsk+KG_;rJBn_uB?g>yJeN+I1|_! zGX5Z3y_4JslVsV4vjsnLOs$VAN;8*+T6~DCrP-agniLnB2f1nWWVXj&1{=c1vboX6 zaW^X2w4uuMQ7p}~TizvR`0wHJpLT4ls>aczN;kcriyzUQ&#HS-E>MR$P4(!09yB@Y zw~C#WVH=7)y4W`W+-VeD5dXb$qu>C4C*^?h!OZ4yz-l0ZU1}Rd=vw)fhSmXXRT$-> zTuO>pX5{)ZIWZ$hTl%C;Qm1^;-CEcOccLUVfvEcJ!-GMG^m2`0rIjR&Ys&oidNB(z z&01-P7^9je0O}@Lzxr_3-aWePiQ7r^I#zk-*e5&j2H-^N&AIGDBxrZ+PA4YEE8;;V zQdNG4V8RIwZMsCC7kh5#hOUnu(e1kPZ{p&8!2$c`cN(>^Y`KCZpI{yeJj!W)qd^WeUvwg)191V3%=`D!?%s1QtWxuckPfG{P{o7BS)4o}eHJDXK zUX%~me>6Zryv6!D68yiSb)cte4jP}WbZ-_od2R!kwS>=L!x7q>UIfMLG7Henn9hvu zU#8#1gWSbZ0srF}XKk#36S#lB09%{AfOzR$8M8TgFi?m1X1r!nD(fN@fhr>UO}O)e zg}4!}2eX5zfwY_39$@5YJ!l!m)6U5asXog!L z`itOY)ozRUwQtAYRej!1MEf*H_c9c49lMck4(>Z^hI-NA6GPEmp)beZ3qEMu96XMt zd=$VHR3;?D%UX4X%}zGNvGley8d^1~#;m_sbH_15Hau6Fa&W#z3F8-U@V$v3#pdyx z%8g6S>Y#2-?d55nlnP5V!^AYd7`Dm20Ov=t+nCgtVYilFAi8;$zVZ3%-P8+qvGy!u~Cs`a)vY`+p|&9>C3*j{e%auU((mX zw=BV`#q^KQ<#L!0$E7RKe#P|B>3=1TtJt0WWp}PPAZp;ag?6a?PL~<(&&&WjDC>DQ zBOv;jlQ!1)>Hp5q4EBVk1o=qOWo8bF&7Y3Js1gPjcgx4+O3RBT8kU=1x%rAeDnFYB zyUhIDePc+k_s|CoyTplt=YQngCm8A`cX#1t?-uLy7x|VgI?7(nWGyT^&^EUH`C%KU zijLR7$`@tmziixVF!!G;h{x+&sbrmPlsB+0{ZIOaSJVPu#WLFI5es_f)mK{lA%btB zql_zs!RN!Bv$C|8@y$jChGF%Mp>hXh2sRB4Z~3ly4La|GgS|#8YOY~Fdm&f(!$lf- z9$mzcD|N4lV5S>;a&`JpN%Gw7vgn>CYm+5rmI8DpA(6A>u2<0ozSOJURlH}C98Sv6 zuhr@Zd-HV(cMlZQa^t%CJa8?KmWa>J8ogV4OZW2)N{jEG9^MaPKB?-^;$qsDvSXR0 zN8nKtg#L6yNjPG6s`;<&fZ#f}1Y zRT7@8zRJg{JxI2)toJnTo^Wg|KE7QyuhuPX?>5DJmAW`-3>&l9nJTKZy0E=&zSzWux^O z5jbo+WxbjO@^05%YG`wT7q!k*EdT_@70BkLrRv49HhE)m_WKg1Sp)FyS)ya+`#?D6 zayv;Tbfp9EpeE^b8a;luDh<K_jBi{UkSqwo%g(#Eh1@Xk!~TQ{x9FLBzw;ZQN9hvIw8e%+ zs<-6bPnBYtDq%dnDyVcL^BCPkX-z1QGhmu%BcD;F$f7fw&AVeN#=PUc#8;Se<^~d( zmB?^~?>tGD7v(Vu*llW@Fsp5G1F8fbcT zUhQQ?+KHKeff0{<`i0#x+IB+#vU#RkHK~AP8AxdH94fjP<{Cjh)t%@(+l)bQOAN_8 z?Q(^#+ayD%&B2+`xWe+Sr!8|n``-%`S)q36@5>In0epI;gU8-%h5boIOnZiWoals) zp$eNPcDPvC+J!5KZGjL6Pb2%=T2RlsDia{XRe6PwKlmBvkn7_<-GX9YajWKW@3D9; z?oIiH`R08P%lRDNrK1tkk!xkNk0k_-WZI`|@@!={DV|_ni2K}v)GZ1T07{@)gs8t| zJH%cUj<);ULGi2UF=nN+A-cuIAi@R2we+eKmw&c%F4K1hg}VuRlIe%iE0TvmZbRB! zv%<9c^R@31!K_1xft-yWEa^{HL5ge>j{0?9zJ;ft*S7}k^g+q4(H=VNG@Wb;ZCM;D z!Db(ROCsvHK^<6S4c;yk$lyJX04oCqgX|O|v&e3=nJaCSxe6u+HUE14*RfDCog|I`bAd0#JlM(FUjAUZ zR!lSbo9Bd8a$s!wAgu4%XJ^E`w@4F@Gy=)nt{W+H59}fRaMAw5JAbG8IQ#ld(IW); z4JCd)Qj&$YFQ2_4T2J)5q9EJK{q`k5^{*C;-j@QW6Eh*Kpiuk5_dN}rryE8*b<3Wo zD)+g4k-0Jz(+#AZicR0~;l6hZVyB)Yu}hs|Mve$iUjq@|bF!EQB>vIC(%WIN8?*D` zRp8q;g%1B&*4wK5ZDdM$LL@GJ^Dj9|CPiCCHdqWwbgXXh40$p z0vZB45wYnX`Lv5^gcHdF1>e&AUfx0qCW+xQ-8ZdRKmCo1aZj3k2;*1djX~LBiVuqX zB(hsR<1WhBoHJZ3<^;hgFO6#`p%o?bH_=c;eV@84MKGWY{gq7UyW9KTLGTi&xM==%1$>2Y(zLLCLQw$B634aEk z{}}dR*ju)I`PYyBd-S_F{ws+OTJc{={8tkH^$Z_$;J=di|5y@t{{xe2*#GmNhrRvZ z;?zI>uZmN5C3#ok|{w2mGflx#g?t|4WtfzeoR8 zqW?e3rNCae?aLy zP(WBCN4BU!JvyH+T0zp4fqZzjR1F?&wjat6N^k-qRZvtos{A52rnkt1sC)jdjI^YS zQ`^$ngB;1gK_otBvQyC-Gc)W-z074>z(LloY2$S}-H|rJqz@$YeFE+5Gey}h8b-p3 z!UK({8YFFoZlvD1she-X+sn<}go7m9`U2*@!`xz|qy-4Okgp8>f3eNY=bPp>FWX-T6V!RpKYAD^Hr15HS9)Nt-Zw1YB-ZSZU z%Y1$L+MGZebh6VDZna#D@~_E|`ny%Sil5qaTU5+$s2Gr0cOtLrw24dI)Ww^;ks6CE z*+7F&cl_q%Eb7LKGEx&hyNB^CFQ*5j$hct<)aVbtIIhyQ50bl%(o1UC$FQGtQ=ce) zO(dPI>`**7J!%5MtU4x6L2O3$8rW2PIJB{RHA5|mZ|k;>-3XtbltJwN(>VSmo#6ad z&3;e?GG|$JN^{FhFjsnc3qO07(x~1NX%5Jw^eGajYT1s`Gs~QP90dR91Dir-;}JOU z;MpOb-x^HY~*l1K!QCog}^40N({yTeG zJ&$BMLmX9Ny=@8FL5DVjqa;u3>6r>>v(EX#%;JnX5?hDSMF0M3#Dl2<3m*WA(o9WFEx2W22j>h6Ois#c!mBrzB^dq4N z_MO6X(@7$_nX}u}tUZlX{i1$1@d$RleEl@nX}a;bJ>V~u?I-v~7v5wQq38I(Vk;Qg zymNl3aM7HAeu(NOlR>F1^EgY2B;3#|4;v=dic+}kw)hzP?0LKpYm_hvc`+)Lxa)gp3;&(+sdn4_9NHQa{%DVA<}BgX>zGWAPK)e zRNnf%QMxxStQI1uG!~io>v9 zo^y6lfmJUbpsca*jPc7x&R=#CS3V6O5D|$u!0|&uZxZZtqN>bk_7P`>KCm^gsdIc6 z{qE<4{rcV{eZUiBNECrrmzAH2p1a5Uu{?PF3Bh0#ABL=BzAqWHuD^QkdCFHUz|&0jp{1i*qRUK2vx)+`J8ED;5;O$x^1oeUkJl<@V(HMd6V)K4c`BS6Ia*^a9( z(K(-ivl6GY*Qk6e&%vHGX?(F2_))RkY4hMCuEw9WjKr7N4|`-S`dTpqnnDtP0_#~tmZ9aOR%hBIGcEd&auD`mUHOgkI zZ}DzqiPQ8QV99U@jG$!u(5u1teGsU9UFui8V?N>c-e3}z3GtqVjZ}I_cOxQnT=lE% z=~h)x^ZGq;$FyW8E%zt~)2%Jupve6IU;Ovs z)P2WPn~^VEcM&T$qRz!Cy~7U^%id5>(~C$q>v(FY9MwB$RR7tcFH4gt!t*Dp(^|3)zWXM3VUQvR_h8rSvDs8(@yHseJl zp5#4H87zlIrD?3LKx?q$7iWG!uIxM;NN5h!Mu%DoC%K}#!*@d0KvCF$h8-r|vLCBa zO?+Sma^nYuezA3A_~oXEaqB6QC;iV)ri{S2BoT+Kn+tOllU82FJ=G~6s*6m00z z8O_4dQUl4RYGZE%(pc5D9=9h5R1L%ochlD z9Nwu};PS0c1-V}84FTswyN6A*hcq*88%Mc#9#pQqRM;tbO}tmT@-yT=V2gT2tQ!(B z>sbn`J+oH>y74wgG=dFiOFGda6)bsUlP_PH1SlVijUZ?hIWoJ`;?db2*E-LnWm$Zn zcgSRd)5YOkI4#jLGQYwETqO3_PcKlv%;faSG^66q*+$*xkc20h2(P4s4MIBKoY1T) z*zw2-0;Sa{PKh0TXUt!VuIKI1MSY-?-=>Ec`X@om&CJ)gPvK(#AkO3dV^R`)wqva+kBU>vGzGDfig%>OOp^H4~Fb2c~-z z_hg+NC2&1l!8)50@5RMX8G z8p-c=&|R5f&7;X$+%14h)|H!ud&Dv4N*`f7+vZ!-@um$>CrxD{P88LZy}5D-oCIlT zy&rJ?@+1?5TP>{zI~>}jD4ji6Qt)$0c7WvDTZ@C1qg2H=S(ej>&5YyNAlLQl#|8W4 zQaEVt$z!xOST^&d|0DFMZxVL(ReEO+8Id@(~) zn!AxJ24KTJ!1rM=Yx-hz$xgeeN^4U7UqXyS9A5%bH)FGJY_~{Qhlw#VKp~8C
VUahqhFA6`~U)EDbb}_%tt7+*DSIkK1Ndl32GmT)WT=+RGyS=jWq})%} z_M$D6qyJiRzRJs*^7<(KIyephb{;s`5?2hS4!bb=EtiYz%4mof$%>hMqB>g3lMJ}r z_K*r-n2#OZpGwEvcS~oR!sVG)o{fT8tz~xqCepv# zALY}1ohzuKS^#Cs_vqDm0FjfjUda?A`PbuDH$%?pmL!w`{q>7tvC~2aJ-ilrw>;zB z+$i)aTC#G?6E(73ZugH<`J1WF))MiT51V`FX0ZU+?6K4ed)5&h+Ae9r{C?MJel4JO zf7YA3xs%>q;>j9GL#WlXTT}C>1%VdRy=PJ&{T6XrKQHP@P)4eTC&>4yLpatR+C<~1 zkltVcd>pUmQGw)iboPPlJ3jTa0j+29v{golqSUZv|RX0N{7?LO<7xGtW*QwZ-`0L55B0`Bi#)#gR( z_tRFJrFUqtc|3l2ZIHIJ{~fm<-WI21V6RBNGPH0wq4=un#RX}_AA+rhWF`NYo6q_z zK{0LUkd5I7pAh^wyc0UZTR?^aV#|h8`re5Zs^II7Mp@`~&QGC>FxrfDyr@T#2%hh= z;dZ{`;*Oo7dZvYS@`MxI9;w#W+xT-|O!RoV|2BYrYPGe3$ad~*=sS3W2y{H;LY-ZS z5_^}1Q)V!E>5w$d6-7TQ-7k8hELnW}Ft~W0uqwHnH?QM(#*!P&@koJF(vlKQJoLPz@dKa58s`DrqHz3FeS2y+0!7rh2 zsJgg7w;nobClovh>{zI6AeA_V)UN+*(^GN2yF+y-z|=AddSrq$bgHG2)JzWzrE*kk zA=dRN^6f3FQT0-cUWek_;47%pmviMg)@>n^!1})DDSe@nGZ&wg0xSzvftarGdvuc^ z4EDFpL|jlMCRt+&FZK{4n6|Wd_89$^X;K$F7h#y+HI>l2AjtEHds83WIdka(Kpp)W zi`Bok>Df80>V_bS`g|dP6E0KrL58x%BGzT(j@b(f^?y?&NC!XN@DCZGVHiPy;<423 z$eNt8^9fJBmIMgyxnm|yC@<1J;$pMY9GVqBB~@`?8uccxR*#~M=+ZCV1n#U17v)C2 zN_$y~L5`Jw0SBM>zZ|Od@si@61WHefuixWUrQx{`$JWl}rTFe{r zI1!V*w!g(wV$!ha0Z7^DbI!R z44)9cnJ?mzKA1TDWhp^r9Uh2k9?W$qoDIrLY6Cuo0{+Z3%ldEGSeD#RI2wx&5!n5r z%=aT@D}26KD=Wk$m8Em!h3*VTAW(X)QP0yDx^~p~8}sf(L&nVp<>yh?us6`T@fEZgt!LK8W841y zm6l3=&&taF&LPt_Oee=ZTJumGpIo9%;pMrgJsdAqX#SpBnL{gfk9~1nh7ZTgHk{7U z;#XDroGvT+AcQ)lkzwdo-Id|ezRZ!~TTM49*1n}3UjaT1+;>5#`Ng6bN+30@NseowXQH9b z(xsBof-vSKa^UXC45|KO6gHs6xWOsj!E-v1jn3zY@JbSw|E!oM3ToJp(;jb7NkK0$ zSVGFzSHbd(R9XVpqi#${`^zob!*NMr*ZDA)Y1Kv|oV}Wd6GR)it4aFFzggT4L8w#> z7bw!1gJpT8DG0Hc5zTLkPw3HU1h*R1^mW*3;7m6(TNkHLtm1?CwW`mZX3h&*HdP^E zoUUr|&tl+RW#vT=btY@!CS@D4qn_8*&LHbD<{@|_{P)!8h)z2MJfN70ftVt%*8V4V zEv;pAb!U+yN$w_Lm;0HEAg&7lqveqY?R02OAcOq)X=d9eo1fG^C1c2Aiu{5!@`s=? z^uAj))KCK)wNVgcm&^g1e&LrVKPAKYuujyvLYZ84T?j-0=~^j~b>))ak*!6U?9xX+ z44PVW2a{!wtn}1H;?_l3aVtm}`(4v$v>q%ul#A6HI!^bXGbZou1MAece}g4oW;C3h z?e;}n?rw1INk2dY{ekEG$DM`E>wkaEgbn|myCjut98tfx&9sB4NQy;+NWE`S6w0=P zp;q(qfBK8m;kY^&gpHZG#^diZa30A^`m@a%4O1CWCT8vfrA_8uub~LO6_e7i`SyyJ z1wXrtW{o}Jb*=1Sp6HCbVaaaZlKj@H|E`x&vHqRTvfFCfAmZV`DG7Zi*7ZeJw}+!X zlQrAH2sDM_4bVt!JR7Bx?HFu-nLgW{$gf^ai!v>&2t%+Xy9HRv>gg6}4-CQP#aN@= zqpspiagFz0)MJwK{Og_1oI`Pt{(4X3bZjj^No{ri0EoW`{sFSq#Audt#LppW5eRk>k<1v{4J9Mt65z$cK?vn`O|D#XFx6$RgmN?}e;)KQw|wcRyuCQUOQp zVyW1eSzFMo|1ScVt0)M>d?=R%t)G?wPiyZOfYSTYS6X*xEJf{caS$Sd+bc7;keta9Q*M{usGj#Y* zM+qpc8*rtvO^n!8RQY66;g4sMZV(gBLEXuqg%|6n$`UdrDmX(r;G(t{V; ztK%5;%pehn|IG-_BYP9QmB4n4O_5HT!W|QzZ_UP@H*jA1!1=e97K^x^00i45KHqJ= zyAq63k0W$aj3Luw^q()oh7V7~al$E_>%AW)jmLV{rgOJh~-8qr#?J+w^UQ{|OEgBY@x>BAaLvz`u> z!>W}RpAy6Btv6H=a&2b>^l&F}F}6)i(bZr7S9&`Z#XURbmS;G`xxbo*+p} zYTbzdActR*aUV~{{C3SVn)0PTf?dBmP)}W6 z#pkBO9$TC=AXLo?*Cq3dc*f+Hz@e-6YUQd zUhg^?V}Qq813bp<`lVw8Ce$T$#k4HjnB9l{g(^LoP%?_bW+oa~Aa{)HST2e7ZQ??( zT3pFvWWJ%aMR6y^iGD zfCWc8``vNZzaAVZySt%XVx(|fzbuhIdlQBAK#NqL~c zG}j3H2TGbQNK^$F8u5{52FimM7aiOS!js=+>VkB7NRR&u`-E zj_I}SRGLuIM1_SB`rfrHH=>8dU1_d5x}AMsWeOVGK&rjd=%UKwjl55l9vsJ26}i66 zYdLJ2i7sp}DIPwN)pz_uz6jDeh1LehOOER|49Szav)=%Ssrru4K5nRFGd<^yE+e6s zHQ7!f|2 zX5Yx<=knOWAc+3(=S(RK_dZQ?;dSErgUWggWeVQ5#aHP&>YW9Zf2|t2 z3}Ws_CyQD6XS)0{qnXe|e4%l?3i>h#_d9s#@WNwA)OC*93{Oa}fXetgyen&U(K`)6 zAgvjhZ_I2>D&RdndssLc7ZLY9V=J<_-|CL;o^VEaE<**KFwY3YY1&@J$YWeNRDEAz z=Xod=jb&vuQ6ZBjA}VTwD0X$ysqy1+z{0bCW}dLX{Xn^Zfj2QUNsU7|-arG=7=GYl z8LJu0Zeu={o*Z5Tb4F+g1#TiJ)>OyY!^AKSPj}7)x+WYLQhYNl@=xk^t-DuRS6Mxl zo)^jlxhju}7w{Bs4A-dviVzAJ_y-_k*MwJoV2U7c3RyBnUyG+s@f!}%Tk<_PkG-_P zC*LK0&e0X4u*$*WX@^6KNF{i|umXcd=lwmIoxS;pL0l5M5$K9{7dn3q+bbKS6=YEeG=!Z&5G-f6ltX_d0!!zs+Blrw|R8=6XZrH%eG z%=fFMz2C067HwV=Cp4r(QIRd*(|ZLl_1ij-RdEk;B*%pT?t@ETmKwspUfTj0GKGn9 z&Ys2PwJo!IrysQXV-E_pkq(hyU?-oo>V^j!-rROF^N=I;g z%o+Ka=J@)N_=*9S^V99)O1iR;xG8y6j6?7X3FnFIhg4M!e+pddyt?tV!-n)g&Q5*y z$fx}&CCGR2gr0H?ST(C3WLnbq(cF;3pvy39pc!aZ_Cr&;UnNShjIsAD>Ga#INc@x0 z?1ZaXrXXiEIIcXhLSGh|AekQUB3`iBJCpib;!B!-URwz2$|gy;Ray*fuq4;$C7}0^`7P zSEeMB2mdNRUk$)p z`^I_HMA2n>J~hjO?vr^?zk4#@k zfOh|B`VM%7_h8V?-@eKRK6Q{N&heO;v#G!%GH2N=VO_#V{w(wy~f)5h;+f{gx9{4Lk? zvRc>Y3hXfOJTmb1BHu3NisX3%*V^KUA}K$=%(9AUj_gafw=!r)f=6f6x%F$_RW{IL zd97=3bIT7p=-r}?j3L9Fe7!9lxZ7BjRO^Hj zi9OR78a#0(G2u*mRQ{6liZ=3{>paO&iE&5~lr%L%&PDatBW+xKiqsdCgGJL0!LfmF zV~3rXt|-P%yo@xp^rQ`CHCP!amPF0`Kkb}*RFZcX$64#TR_1AKCq3p?*&QW4MoHpM zceHSoN{rGjm|B{e7c#Ha%4|nj;G|NtEfw=dnMz1Nt(6+0M@mo-k-T6cq9PX|VlR}; zot^#PPX6=0=Y7w6`#taP_q@ONd7jVLc>;)OE81~DfDexdsC+co@SNj>mzcVVEfM)i zI%y&)X)M5%CD5T(pULrKzmKZzyHc6-=d~Jwxw{C9Lq23IqL9hRy{=JGHEoQ?)mK*g zo#o(c%9Gwy_qIxH-ZEoky<(|y2pU>}ZSt1DAprGVKidngIVgEeRiWtY5Yxq73`VVE zYw?+}p;dT_ffplSZXJErPo)xu@{RB=*0}HpHb8{sl2I%$T|T&*#nR{ZUVl35I6mY> zU_qI6T-Xv~q)D|;y|Im8c1D$B6Ns0h+?qr8PgjXkV5zj=j=~6ag^O7CviDa?(AJ(z zE@7pjU#%+bzY9!ZTRjm~m{Y*;G(7}{Cvr0D+I6%$ATE3SZ!B7TT8EV1J= z;T`=MSqFuWfN9!x8wpC?k?YM6T~@w9EmO2r_`0U#I`Z=%8XB8z(nmUsJ}D_Qh*~5- zN|GRd;fYQ;K#y;n?GnKY5zD+21wOx2yj*8kiBHiyZY5LK(8End3muqpw~Ne43++Ui zi>A|@5ENOKE(za=pxW0J2()9^7turpl6kaQx89ezS(-^BUJ~drOi#(49I9XHt15e- zA*r1w65%&waO4?#oDpLac%$4atjC`ZUyeS_jcX2!yM(37b0jsx1At0f+VBn0^YC%w ziblq6wHy`|%9Fhy;RjH#n{;`T_M~P_0$CwfbjFpX6N}Q@A`USyVaoH3t=c=N=48Wd z?75pR&J(3=ojsZMQ04>a{>Dw|%8^sK5rmcdTC?Kh0@ljzoL%o95i3EP%-9BUv z!lW&1eRjx=c$DASfCMDInMke*|r|-V!y050I?J7!{EGLCn^o6 zR1t|;0;MoozP3@iJCQ$r4GE)yzcJT(YGnE)hp#gbs5}G)g zVMZjH1kWN5TV@f;@l@4wn_EuG1xmK$wmXs9>=->-;zo3=ok-!%J3-8l?R{vjZ#bY0 z2(NxMQmB8{=6hENkeMUJN@$W3TBVE24^-D-1AtU2Kb5GtJfY61uJFB-9Gy@1kY*nU!5Ypt@fXrUDl1dM{5 zYK3i|m`wn6gzVbMdPzo_6Q(QxjENt5I3P%nk+og&E@m}uzE7>1j|m}b6yF#unFy#>@fFFRqh!@i#W5Bh%(3ZeJaw*R5} zBDD!B86T|KoG-`$Ydc>8JNBC1;o)__j?WkBG$MDw1~Vg~xG-msZyb3Fa2#AHZXl}n zy5;5$$>Z}~I^!__pu)~vJgppT@fQDAt>9^`=l9P3<9UDGrka@g9iX)DznnQ|mS46q zXjMb^wIj1^qZWhG7G1Dnk|5AebEk~GZ+BShAbb<9LWwp$-0j;L^NO~ZaoA*G=WT#u73j|s=bujdOhUbNz4ll?sml!z3?mQHW zJr*16apG(+umZV4TsMIsTfh*g-$tm1o4bcQbUg&(0fG3gUV-_?2@#Rlu#*Y@eFFS^ RuFU)lh@HqCmD`S9{0mqjdZPdU literal 21032 zcmeIaX;@QN_dZN()z*oo4ya6RcoY=@5t)Z*4WLD!$UH_tKtYHMAq*L`RE;)wy^G8ZbD%Wxe&X$TdHU-$*f#qM0 z?>q$~iZh#I&N|p^p8am~wgVPKy>E4tl$?*A1)p+_8=7arNm!VC^8(%~YA(a7`sZf_ zXS}zBKYLbOlQGR4%ZT*?svL6xZKlVcGo@)vG@`UqsE25#keoloktHaVn+_yj&bHn#ni5wt-AkknTJQ-a4M!>u!_U&flJaNZEtDLPqre>Z zV6UsuMB_atBiCIm3KIg=?9pk zttQ!h*WQbibDk2yWHUp?<`+K#R)C|~f<_0VxlP%TYEgv|18ORF&T~puuGk+r!EV`R z8si4eOwv(z=W<-(+t=@Pt|L}-UH>KDhj`8J8B7^WdbzZ+%5+M>l%OH-=12E^@VROk zlPPL9qkJFFR-CQ+^N@*ja=Nnej^v`Kc0haP(p@o z`?TcNgc)>WZ^NO*&FtQuEk^nS2MU6iTGnAbCVk9TrRG7McbGog=n~0Tjs6}4KY{k4 zwwK=_b1ETz4qso6*x=ZOjpw;}Bbpj4d?XmWd zcrh(rA>bIw+Qg)z&i#15Cxvig;mJbGUQPP53ZJ^#EhfGF(Y@?h)S zc;-0v1odU)6AZ>v<@9+5^oFgFIBlU_aI#R60d=`Kf1aT=%mRGA#`y{6j?F=k*(9_} zkZ19-Yrz_j=Sa9bbtOn^iHw6%Nk-?HM(g8!X$V+w$PnW7_lk${00>*NFJYt|uyfdn zYY-Sgn-aQ&c9dyUE!<&Q`yo7OuSVM|Ajbe3_cZ)Ybh}!+ylHBkvCt z1dz9|GtG<&M%l1rcRHZ^6?YtGG^6Tlz4ztM}e^da~(@H(!~|G0lM#%;@3-h-Ve_j3rJA-Uc!PE`e#RZxHM5I6g;4y?~tu zgFoE)ZkSrxadjq|UcowYw4z~o8e^i5gojs(fw$Z>R_8x4wNNuAR0&iJ-gVh`tP>Gp z=L&ifnzrS(ty=VZXS#X~9Gud2+dAQO2gV=;wH9^09Mhgo7Ilepf~>nvK{eLeN8xrO zK8p{bdiwY0S6|H!M+MG09NM>t%HhgqA^(}Uox79Z5dTxa;xl_k&)6vNVnmaMzVCqm zs&v)M2Y#7mrtXwD^9XJCAji8dve?Iv%Ckze{=j~Q0+5phiBs(ngS?P|k6I|r>O%!y zHKDM^gZ(R`A$=ffumGd2ClRzUy6B{ecwUk%mw04i#s!ipkWEW?TJCi|E1|UaQi^%x zav|Wh9bdXXT->s4-6bVS->p4AL)F;~G70da^_D{h_)M18#ALm7av7-Mf|L#i7X17n zRq^*Ui7M+AFdn9RB8Lh*4Rt5*o)7A#WEca3*!icJIDQIT{z)1@JDld|i3F1|=?!}3 z+#1`e!LNGCo@(yW?H#rofk?Y`{EPQ4Mk4AieA+0l6g$dwtwBI(`trjWI#d|PNvKez zR>abnlNx2q0Ut4=hGL$@Rex|tYKeh9@CcaZ0a*OyC>HZb`Yv~zpJ+?cw7MnG|DikV z0<{NXsSybs_NgF92$)+u?#i$8;%bm=DaU<|FUDZR(bhw&eNe4Uj{A>anrg+g?sRH# z04z?5-lXFE7!Vbm2>}4mo>GQkZMEsZ;54&`bqhS6p%#PinEgQ|QrE~(+Pocv%CO1P zI)XeuPGo8h$Fq8;_X`I;Q6{x*X?Fx}2~ znDdaQnP?esw(^&Y+E`!tKF(ZKQN9_cycoc<8X*VBK@2a3++*OUQEUZ(N|P*6ZD>VOF--+v z@S@}HVU`52xX=h^%)QbJpwl_KO7jh2JT0A%@8(fq#rptFgxz_r^}o=dMY^*!mxh{Q zkXW@v@uQ~C?s3`mP@mt1b@#Bi|Bc;?0pOR-c+oK*o6cjHPBh6X(S1@$IH)5GOYM{0 z57V+vr;ln9p#3W|4!zjq@=ue+{rcw;1htsaNs*>eS<^IxI`MutwTyIVVyGxWcP*|8 zGb89A#dbZq>YK$DFx;op>z4;gxr9nD+UpyfB=T_UpV4qn_mf06nU`Q1FngmHn^&7K z%tYH!i{`uuF@s~fvEXxN*MVV%X^aIxV25q>{!4bk^nwKDEMRsn6#F{FgxaR_uKn{~(2CuII+ zmnw72Syu{V2Cmh2F< z5>5)0WjK+Os{X6tqI;6SdWLKV&e`3P2OsDJG@V#nXN@+u!*?wz>pMbE*B_Pv0>sH+H6V+Pf_ z{?jYW%_2!%Xxj(OgnCM?-Uzyds=4kA7ueP9-yrTkms!DXGvdr9YC-vjk>YBAoBTyC z5iyF1JM4eQi<6RI1E#HEFs6rr>8TjZ9YrXx$uT_+a>s$dq z%GX5qcv#Hk-FD#n;ilO0_=ja4Wfy5dINz6c!_`{*nN`s81iIZ+yfr*$MAN3@kSOFO zbXriIk0ZjtVBdP9N#+t4)@z>oLwA7SbhC+dl=QYeLrywgKo@UFK*Pdlc`h1pb2q)R zS=w6Pn=O*sm?3KF&eg~?Ql|CbHEXTA190wZ^SAPCl9f?c2*Y@Wv^=M+l}@I9G~3LE zu-qmwn6)2)0Y9H3puM{>j%gM1qLXwC%dYGyezq@-cOURxGRKw~l$``~INspiyalVE zpwV|iwm#xGhwy`V7v1eCQV94zJ$F(2I1yGbHn7vbv8z*{zv1CsV>IxFSOgN#& z7tC&uACZhzesS@svg+eh`X>ezJ>D{@wPUpOED)=E!(>#cE2C*bF{ zvjQg{4TC?r*h$8Ti$9WdWxL0GtsIkXSoGM>$l zBKqeF_^9+l8chWYSc|2!b+1seD9tU7xZvT&8#RAhN+n%nkLtoaN0U6}wAs#LpF z%6*@P4$WZoy>_=UEd7~*dca*kH%bW{?vcoCqZ>F*Zc#>dod zWw?6_UQc7I*E$c#z4~>4j;Wl92jx6*>legE2kh3$#*;LoXAIjz{gD=bkPwOBC8o0xWI`Q_a7s7 zX7KA3FhWm(>3kcQP+cP{V9#W#0~6ZxlMc!&-We>}1<;&-edp@)nwpwvVo)Hm!tzRA zYu|mXfQu(mr2ix77zp~Bk_mmW#(T9LnBTV8n!^C$g$#581osOhCOIx(KH6$jqiRKp z7z_vV4YX}WyvA7iAdpVLU`l(XTuN6rXC-4WK!EchU_>%L_hHDHxAszBge&+`6>$-rM7L|=M~>X0qjM;6 zvpq`yXZ;>y7&2S(%>QV&0k9uT%k~nuO=HeiCu6$^5#7s8E?Jpa5InAYHvj_W#YOUQ z!|5oe!Az+CXwK580!bwqyWv9xZt!x7H4qrw^uiTRo0v(MxX_;J zNeTpmSHGqV`U!@;n^M~0I=$LJTiRh~Mar*Odn}M*?OooPcy$)VsqhiB67>5uJ6KiG zgKDLY-eyrNPcfJQxC?Bf>h4dEd2^Ug>V5&R65?li?#mIoiFod{30rDLoVvW<`SSY+ z>6Ub+gu{om`2gu;fb;PL+IS8cc`G|Gglx&n!{j_Cyep zru2EIVp3-_wE2Vs+aK=sq?i`OJb3JD+2;T~J+s+Hkv0Pf;RLS!sZSWZ3llb-Ec1;C z7*YoqSOmBv`m@dTLh^EV0)cQz#%w2oXnAiXR&%N>8=@H;1uJ zLHOP9>$Forj6{s(0mA&fswLR`Y(`&+Tj0r$#sH@k#KJV^7I-;lfINf##b%o+wIz|R zMjdCLHenf2+BaIDG#ZlGk2Cm>)lEkArECw+dO>hM?>@|Lyr`GJTje(6RC2r&H<{-J z0l}$|QLmRkF|w0mLPf+*JJ&>Il-vw%+QS>kx%e4D9$AgfxN5~x+_=>6q)^#K@qX%c z{=rTkGr0tUYn36{<+*6t8*R7*5w$IC`zfJc>%C2bJ~+Al*w*!Fzq|cwip78esg}xp ztvCdoU;GGyeLUL}hX^6}tx%F^ZMvl(!q=p@-zlrJUc0Y)NVcg~jlePyzJka<{+Y{h z2v!H((XV>aRMGzI$KKH;{hcDw#Vo96c3z}x*aJV_*^>JJ=9h;J<@&8WDMyC3)wW>K z@)0?srmQ~IkR5jXjYw+Tk;*lW;xH|g@OUeW~?Nl-!B7- zY(Gboy5DNjup>}!@&;oWY4F)*3dN}wqb6W~x>tC1nt@d_JHlQI2H>{M_g?(;se|*G zPgqGU)EcGCBo!n3gPDxRM5A!VwXq$EBn#i#i*D9>I1^y_xuJK=Eg}9UPd+?FJLxDk z5j=T=oss#IMz@TQJ30#?a#_=z7Q1Cqh2RvfvV&AXH~SOu;6GAIO`cpT3Bgb9y6pN# zm@N8LMUL~O>D-2!z@AEb^nax7;U=>B&8QLNY<&lvp?bc^b43lHaJ+L$P}P&zv|P94!O zh#0`CI61V7toK=HF-qJfr{C#cMNoPswgkZ;dp<)u))hs3#qIqb5)RxO$6CQkB=7D6 ztUx?u^W9uP-z_(;mo=1DS-7Xd?}JgmS~;sja*>Xy)vrW`&%f#5xr|RlF@HhtiTvPq z+b{Yx91!VOf?JDyWj#P(3?zuT2KoV)x3z;r(Ab*1Yj0@0=l<$|r1Q*$y3ED=9Lw%6 z#3G~_v$y(=2#pqc4uxge#ZbrYBa()}uHL>?bKG{>D{hfwZQz4faeiMqUTpGg_~D_w z8DWSD+lFMjvhwQHH&ijIGal}Lf1?y={$cjSScNg5*1mtJbaosNPw%Yu;Zh~aKeW)C zwT;9F3x<;1^z`Kk(~}j5xS%_Iom$T;^WwX5Q(wzibKjE$Ufa7W`?P>S|Kz0e(wg-t z`vNZDFDLD5M&)WwPEo9m{Olb}5IGAX zPb6bzwOz}d$M3q*L&Z8KwO1$4<0DKps3>*^C3HwOG?C;xm4~A^!bNt!&e@H5^C0R%cCDP`I zHM7rYB6TEx1xe`wm8>Z1+m&&uA|!;NY=#kW`87jO{CKwLn|0&OrGA5ezkEEeNa&W& zg0nRB^M)&e!0F=Xn6~aqd|vNWDX74u?zrQxID5F6^D(Jt-%jD}3)D-~U78rzf3{=kct%91q)*;)Y2LRoGxSnYuZjxkIO6LH$&x%B9r|i z)0`GV5Tw*S?W@e;OLF?Y^>JU9XIk`apDP)fi@chBI??8XIkj1q*>6MY6H7CYn`~0O zmfvRG54Aly73)gDoI4s~mDN--LdEE>jolC>f*DXKQ-Lgg;>ebHJ8yLp0z zEGCdL9DQ~Cj=-*i2_3bdR$x3)y~($zSWK$`MUgJ`V-9s!4RqUx?B*IO6fCPb_ylCA zW{MJGtG3*DW4l0OFPi%a5nO^>O3woP5wYTv5}lK~XYtf>>W#_>Uk0^%%vehUYpOd$ z%P5XWuxRyEfz~8Yrv37OgwYkp6#oVVzbcy@?haD$t01c64YD6pX#_C(#XZM2@)ug9 zJi=&sOai#gj9l0*hNu}_SYdCZ$mpURE>0NN^aV#)01q~gT)sOy2qjzjm!PgbV`}*y zU814z9e3h5;|iig>OjN0v`8d@Sj)UGpx(RkE1P6~x{(|NjxQ1kTz!grM zC$pZntVmP93KTpAYEOX5Rv>IuMWsOpKyDUTgnFiQaH7)aE4~#IfX#Dta>Et$nUym5 zUmRa>5*(zUo~DD?6{dv?RgiC2|1P=u=)+4?m0GVgnuJi1Z`LrfuuV9tf&f~wC6!vY zq>uh(yC*-sF(c6?<`J@MUb_o($Rk4FW8ZlO#_-{l`}26+>|BhtofVavR{=<)55Uim z*;@N|F{|4&c520<=J(GQjh4R>HMsq9~oQo0XtqA5;isRATB z&KGlq@p%D#(YC$`OTsL?I!X3+e{ueNmliaQbeb>up?k43Wq+m&gqI~{zfT~YK z+7z*XlnB|p3yAcCLFl_jUZ7a)ny_rp1}!uTh-7?DsVxF#dV-R&KtE*sm3L)4bbk@w zs0VPn?KYzT7vQ8q&ZzU`ADF`Z8XBA3lMf*sioKfb6jWEGfr8cldmp*b(&qf+XQ`+* ztf(jiaqQBWN`HOQ-PyYJyHe-?81KuxO5Ig_UyhrGl&Jpgd`e2j-!J@KI8?g+4dDM* zt$)l`L;(C_t=Bs!|1|C%`ue|HKmOm|YH(qmEZM%Vr*S`JH3pux#+jloXA>oh27#jq zVPdRHZD`7#@Zm2V=a|<*S#TCpHtG7}*K%)iLUF$C+z3h*|L#FmprT)P9=v&E+xe4oq?Mn|IF{1@4x!D^~D_jT4LQR z{* zje^wuMSk7S&(H>{3hk6Na)oqm3JcBcJMUxNb(mFCo`}dVYnfT;X{jA8xj$R<^-GS~ z^8k*9?of!vT;6D?C^g#+D1v>GkFq_A2tKkIe^7Op5Y9^Xgz-x}Jmj6!t&Vr%eb|8EXIh_|3Fr#7*ddjVPQ`y7M;J(fYP+~ zW~ZDB@tX`dx9yH;^oM;1oKQ#lnCtoJ-Cc@oYwp3UN+tYco&->v(r;eTypqj8imvgR zq@@ZA#=>ycBZ-UG9m?Jo>eO;0!D5W0h|RKKRTp#j{55meUEA|!H^sUIbsesL`5^<~ zkZ(O!CpEYEknczQrSmzUHs=GOK~w}dz|V>+T{{K167n?DzI10sf5o+ipKG;xhAS+> zm}vlesBeFmFdES7_os&TMmoymrEN<-ibSM z1dMnv(=ZTJqhLn}$z2;*n zINM$6^=p{+)%xJUeh~F7%HpZ`lo04Bd>+o6D@S% z_5?rpw4P|T9isw@6OLCn*+`<8`XK%KE1Z@}!_wGHtH-u#@Xo5zbb@67D}H;{Jj@o{ za3yFsE8eu=J@cmb?%D6FmdY~=J^Xi7UHJH0@17lLYup8%U~RkvgTk)ne4fP{(oOo( ziGIur)$Ij?UHtrCP8_wa7}ySAl#rAxldm)42nyBq>A-=khsk>vdl`OqOybIv6;PfTJKoh$!D0;?HW;Mdba?`1@Nl@aqFvEHvSF5%n!eHX$bnGwS#oJ4x-#Z8RF9tOM3of2O z)Hcol=G$?@W6QySN}NJ4MuggppnEsqth|0QwmA7XQ*AOTwQVt;rY;^e9~%+_hjy7& zt##{YO}tcyq5y!&iCdVxDgYDk)ZV+3#6u+61kxBy^2M`B2N}))fp2sOTh&}KaVxmS zA&jR601#3RX%DesVKB+gKfSBHa~VIoe0e88n{;i2p-WHxI-BN-p50Ko0>K zaz-Eaq+0WBM_Y-O1y@eou?2LWcs%mqvK-^2IVVNPO8`8_cwVc1wtR@LYMQJwr;@rKT@C&Q>mDWlwlK`(}FP5cUN!cOxM3~75e%-%0g z{Env|KO^6mXwn{`$&K}EWN78jF09=bd`x{2d$Lda2;-fI@Y~LWBGxW3 zR~ko)@XYA4zNgcjeW0{YtMQDGeCg4G<`APLk9pEOms&pRBHa9rt*an72T@K=34il>vou6)CN={RqvS)G&CrLYQnsk^LM!R>+OWI`s zc85X{A4tUP%M3oOMChl9y^s!EdL7DQtI&VSX?Q~?s z&#Vr*iTNe@!R>U`Du10!yug0dJ~!rr3|_Hy8%^1(s@UZmVTS0yCFlDdj>w}EoOVjX zrI=dGVTi-b32DoAYJfF4A|YuxN$VHEQDjV8BcOAS#)+~;DsVp?y4*{NHl#wu_%3yr zXbyw#O0W=YW`U0)kmH&u-r-29SDKg_B~kdj+UYt3X{b8XW3X`M)@16~Xa@je~S8epPpbecMBlE3PBRSC~CgfQ*Cb|F_6Pgt-)fJDdz0E8IuI}|$ zlCUOj{8&t*mr1^SCOE9(L!=OdCR5`<^+28zG7*Hnrl2&m96?9D1q` zd|t-NsDC5+<5H4rMY|7qc~a0&F0>BM-@$?$V|U~O)T44iypA{7j85x>)z$`0n_Tho z#&!!Fz#x$}=fd_U&5K$q$ohkvhY3wu1y_9c=EUuo^iI`3ZV&<5>_k8gZ*X8X{^Pbh$A3rDjO)d64>~c zUEaURI-R!ogK(amwTi zOyDg|Jb}8~!Y<81Asrr_S`eHAS_!sXAk}GZ0 zq(3XlfkSp++Tlp}w17Adfp;Wa2&X0Ttq0~OGXRT~tpi2;2Gc_UbSn!7rzVv`$}1Yod!k|FOqdB)>F4Jw|g{9<*O-^REwJtx~wAI=wL={wWGCB zL3DaM8$JMjy~xfA>C3JTp~ds*=;ys3FlKgibz!?~_}WBH@zusx*i4x@5U7{xmd((8 zQ8zXUi3WoQJBd`7T<#?pj%DiqIlW*oB`(?pmbt}^P=z33HtL|a|5s>p>MEyh^a)rt zWHGH{$8V{t;9Yqe#Fl0+efnWAalhC3==nMh`lFAIT_xer1Swrzk33O}@mCi3pZG&` zD-Vd)nj5|Yz;%3r%_#(kEK&WUHgEZ`>Y~s_p@)2^!x0<% z48(X&a*Sn?1^pf5!odZM8gDwzs^#EszB1}UJI>=)Int>U6>dIv9UWxVh2LuHAe7z1;1kM}O@k+@fk=yO zgcAk4Lg~Tn+^Q9R`U-qBlgO2U|7JeXf|pN1Je>?9@j=K$D8FH=dA`v9LqWA3{P z&|4FNJ;V4VwmPO8pGVeDivmd4V0U znYBwN2L9wB(Qj{LM^8T-{{qlG1=>7Xhc3c|Zgxc$M3rOi3GHKbP``q2Y}yz#1u_IO ziW}13xn1M893CPMG}x@BVfq0Eu^h3?biP+r?3nz>`ATyc4u5e>#}FxA);YF@pJON| zNcd0Q?npB=ee9QTf!e_dRVhY}XfP^4hbZIxzk;4|bNtnX_ZM&5(yTJdA)cUXtACV0 zmQ(6Y^-`mEbdf4XPp#;cAg4r0jXtuGx>c*b&yaFIdXqYJ)Rj5b0@4(He8N#~4nndT zIV`6XE$jeZ_(>PXQoyfw`KfsoS`!bb!)IfM+t0CKcWaKq(9o6{kZp}>+^SQSHA%?8)l1eK%dOMvS1U?={H?<{;wz&wV@W&I z_C~T^5iOV}41n_;HNH1P?P%GNA=?yMJsXa_Peh7PrS;n_HXW%~zwxL(zVs?1E45+| z;7X*+xuHGk5kn+~OtPChXat`cIgRq#2XHX)^C+|H<|m&}2*X1HhHlYQSUzPJyFUUV zZH^9qSo!QJmQd=-=D~sNXl`r6ZP`*H7+f~$>bIDfVsw;n6xiG}Z15l8tZh=+n+xcW zFqTVqn~lcds3uX;jlstrbrip7YJOs?Nc1d+)z^$r;2L=Ryg^xInOdrnX^{z&SVST*) zke9(pW-D9!_hrmR7_SbmP?5yT_%crNl{7owOYr#8}@0g13@`rq_^#WMRs-T{N z7@Bp10Eeaps-pZ6v}Z<@UJvKT@!7S|O6k@4WQBy0E6&{KnP3>3I)bD!HwP7=oYR{8 z9$FF>*;`qjYc0_7R}{*~hgWPKWuL{*JPM1u!9FBVzxgIZzB*sSt+J56#^#@PS4{D_W`66r#*vN9dtU5X#F;tmj{5@!PNRoT zRSw0sfU-Iyk2`rG86+E#%II&`D`C{Yxe^ZL%qVcft7^S!)k~ZI8vGdU>}&Yu($5Id zC?UuXPS+6l2|cSYP?gljOVR^?(g^>RS=RiIzQoJrlcB!2&#FM(bju0Bbki#cOEMUo zrBQFpA$*sjz5FPK*Nj6`ug!T(dIX2$Ch1!(U^_pR@*6iB?Rx}c4m=6O<-HH#;D-Aj zzr6f2woMSkHoL@&4>4WKPBJOAHl#TDOpixkQ&GW=wATSi>6(Nid;&0jtH3D{G;uSS zt|otf7VuH?5DtI!jw@W#;9~dh-21#vLPf%OsCtRymCff+aO2)9ZmCK|Y~%C(kI5iZ zr9hmDnaK?K3`$)=e?PBz-bOL#c0YXqx4|yh&qGqC$a^Dzuid6|k8ibC-xqnReATX| z^vht=>`jh*co|IV&h%cfEI>}f%6;l`QENJYP78I!`x}Gb_Uy=Nq8= zdQ5@jaFN%HNia(KRgx;Yo<{^|qmXZYDzEG$RXDQD?L#Y4OySsSy6MMfW#U=Z#n*{A zNcCF{=rlcKlm)`c`>y%F4chLAHT{@V2gB0u$1?#QYX1DONnpC=5{8wd!W79A9?&u5 z!?1d}T8$}%5V&`Tb!<~n)5PHxy$%v(>cKrm)){PEBsbb#QyBR+vgDk3=u*jHtld$6 z^3=jJ?I3?V`(~oG7pLp<>X6ePJb*!{apVoNQ|%H7T%Bq$bDL{{x*fQ_MDBeynD|QD z1C{5QZ3J!?5~_NQi3F(N5aZeGvUJnckAb0@LPs!LO`Q!pq_*hXAfP0Ce2NJW>&XY{>h}pLoJN>v%c@~w)n9n@kRU}&BmD+)JjP`s^oRHcd9>>ZqzUD7n3_=gQ ztiJMRu7vxonPZ!DdCy{aHgqde5Ih~Uk~1IgoVOCQdARoybgB#>zK+IPP*OD#LCI1Q00<&+=!YJZWSx zt8c#fI6$2OLU(0bY5f&j117fKACf7a?o-H+gVWc99|l#RrWFv<=vS~M=s-7KmMhxG zNo`fAOdBhPOIa{h68w@My5$8?fG~y7p6cBXbJ&*&llnWIh(psSwH&RVcWSq68+dvD z8aJT2R6)PxW-;gPv-`86L`88l3K`NHac1e4^(u<7kQ}YGO(3k((Kh{4rN?h0_W$(quQjc=^VTh4kg^II|NpOOVb<5{Y_`b-oAs%q~&72x9Q%3a(~N` z!RP%Ko70yDrQ&tv+jX?@SFBy}r7gp3LHA3mASEHy((($j2-Bx&>x;5sCsk^a z#?7|r8x@F5h;~QKQQhq+)HF|*M28e3O>hSxxPR7+YD+R}7%tR2nr>S6_Ri@p%CUff z0}!V9(w$CC^k76dlOT%j ziRp4opr+ZyMXyRb63U68ppQqt|Ggtlrbw_jMRwMPqFjt>B{{y6oM-&aCwC@kw$BZQ z_k&QJhWoJ)M-soN|4)wp)*e7uztmZT)yrmR9;;uxEvBe0@;39N^AAhBc)t?LFMYE> zL=OeZM_EDsjHM>st!u$Ax$y17VN5p2N!F)w7nwPtQ8q5Y|HQ$t|Ewd^-rd(x9Jk9J3&XP%IImO6POKhACh2=M3& zRBa2zQ=YV?N}h1_=4axL7|q=MU(Ec|e-v0Dh`afeYvVo7iX+x*35pTMZvSGXhjstz z*4F3y|De)qlTtOOTAfL8-roQ72Y>D>-0bf@emwQf|F2q6MT8r!_J7rr;a^$c|EeO( zCJ}P!^{+J1xwC_By2?>fg=TE}(LAW@_wSzBtLXiCHg+C@@_KbijODK|Ryd4`ywBH$ z%cWE~>do(pYfme~WZKu$wy}gZ# zpT1J`?6dwYY-BCXga8|sP1c0L-yNPG{-S^546WqB{S&T;vC$KEZmaba{Mm&vNbST6 zC~F?%czZ|qkXqE4FCDXS^0A~-NeUGnel(%e2tRV~^Uck#4r|7ZrCXe5ZoI1T@9#VP z>GuD7e$naQ-{AUp#{Tuz_08&EOZ;!Q#6Qs5h57fh5{jo1{)d9=fqVnagr5DA?@6&@ zya!@zJYz0hj0rLij0#e`C>=j`+*tRRneH(YSA*l`h9>4lW;(}?nIAj0>5avq|M7uv d=%p*c@&E51fa8)Le75LW8%J=(&li6Ce*o@No{|6n diff --git a/scripts/3d_model_viewer.js b/scripts/3d_model_viewer.js index f81b34d..77fc5d3 100644 --- a/scripts/3d_model_viewer.js +++ b/scripts/3d_model_viewer.js @@ -233,7 +233,7 @@ var renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(initSize.w, initSize.h); var isLight = document.documentElement.classList.contains("theme-light"); - renderer.setClearColor(isLight ? 0xe8ecd0 : 0x1b1b1b, 1); + renderer.setClearColor(isLight ? 0xE8E3C3 : 0x1d150f, 1); var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(45, initSize.w / initSize.h, 0.1, 1000000); @@ -309,7 +309,7 @@ geo.setAttribute("position", new THREE.Float32BufferAttribute(e.data.positions, 3)); if (e.data.indices) geo.setIndex(new THREE.BufferAttribute(e.data.indices, 1)); fixWinding(geo); - var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x5e81ac : 0x77838a, metalness: 0.2, roughness: 0.6, side: THREE.DoubleSide, flatShading: false }); + var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x8e2d53 : 0xe0a15c, metalness: 0.2, roughness: 0.6, side: THREE.DoubleSide, flatShading: false }); chunkGeometry(geo, group, mat); var tris = (e.data.indices && e.data.indices.length) ? e.data.indices.length / 3 : e.data.positions.length / 9; fit(); @@ -331,7 +331,7 @@ } else { var geo = new THREE.STLLoader().parse(data.buffer); geo.computeVertexNormals(); - var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x5e81ac : 0x77838a, metalness: 0.25, roughness: 0.55, flatShading: true }); + var mat = new THREE.MeshStandardMaterial({ color: isLight ? 0x8e2d53 : 0xe0a15c, metalness: 0.25, roughness: 0.55, flatShading: true }); group.add(new THREE.Mesh(geo, mat)); fit(); showCanvas(); diff --git a/theme/blog_share_theme.css b/theme/blog_share_theme.css index 08d4dc3..fc5d43a 100644 --- a/theme/blog_share_theme.css +++ b/theme/blog_share_theme.css @@ -1,41 +1,41 @@ /* - * Harbor Share Theme for Richard's Blog (Trilium Public Share) - * Light: Harbor (paper #dfe4c4 / ink #1c2d28, accent #5e81ac) - * Dark: Harbordark (#1b1b1b / #efebdc, accent #e75a50) - * Based on https://github.com/HANCORE-linux/omarchy-harbor-theme (MIT) + * Coffee Share Theme for Richard's Blog (Trilium Public Share) + * Light: Coffee Latte (cream #E8E3C3 / ink #2D1A1D, accent #8e2d53) + * Dark: Coffee (espresso #1d150f / latte-cream #f0e2d0, accent #e0a15c) + * Based on https://github.com/megabyte0x/omarchy-coffee-theme (MIT) */ html.theme-light { - --background-primary: #dfe4c4; - --background-secondary: #d0d6b4; - --background-highlight: #c3c9a6; - --background-active: #5e81ac; - --blog-card-bg: #d0d6b4; - --scrollbar-thumb: #c3c9a6; - --scrollbar-hover: #b3ba96; - --scrollbar-track: #d0d6b4; - --text-primary: #1c2d28; - --text-heading: #1c2d28; - --text-menu: #556753; - --text-link: #4c6c94; - --text-menu-active: #dfe4c4; + --background-primary: #E8E3C3; + --background-secondary: #eae6c9; + --background-highlight: #c5c1a6; + --background-active: #8e2d53; + --blog-card-bg: #eae6c9; + --scrollbar-thumb: #c5c1a6; + --scrollbar-hover: #aeaa92; + --scrollbar-track: #eae6c9; + --text-primary: #2D1A1D; + --text-heading: #2D1A1D; + --text-menu: #4f6b00; + --text-link: #8e2d53; + --text-menu-active: #E8E3C3; color-scheme: light; } html.theme-dark { - --background-primary: #1b1b1b; - --background-secondary: #232323; - --background-highlight: #2e2e2e; - --background-active: #e75a50; - --blog-card-bg: #262626; - --scrollbar-thumb: #2e2e2e; - --scrollbar-hover: #3f3f3f; - --scrollbar-track: #1b1b1b; - --text-primary: #efebdc; - --text-heading: #efebdc; - --text-menu: #a99b7a; - --text-link: #e58980; - --text-menu-active: #1b1b1b; + --background-primary: #1d150f; + --background-secondary: #2d2118; + --background-highlight: #3a2a20; + --background-active: #e0a15c; + --blog-card-bg: #35291f; + --scrollbar-thumb: #3a2a20; + --scrollbar-hover: #4a3a30; + --scrollbar-track: #1d150f; + --text-primary: #f0e2d0; + --text-heading: #f0e2d0; + --text-menu: #8f7a67; + --text-link: #ec8f89; + --text-menu-active: #1d150f; color-scheme: dark; } @@ -139,8 +139,8 @@ body { padding: 6px 12px 8px; border-radius: 8px; background: #fabd2f; - color: #1c2d28; - border: 2px solid #1c2d28; + color: #2D1A1D; + border: 2px solid #2D1A1D; font-family: "Cookie", "Brush Script MT", cursive; font-size: 1.4em; line-height: 1.1; @@ -149,8 +149,8 @@ body { } .bmc-btn:hover { - background: #dc8164; - color: #1c2d28; + background: #b25d76; + color: #2D1A1D; text-decoration: none; transform: translateY(-1px); } @@ -333,18 +333,18 @@ body { } html.theme-light .blog-search-header-input { - border-color: #4c6c94; + border-color: #8e2d53; background: rgba(76, 108, 148, 0.10); } .blog-search-header-input:focus { outline: none; - border-color: #77838a; + border-color: #cf90a2; box-shadow: 0 0 0 2px rgba(119, 131, 138, 0.20); } html.theme-light .blog-search-header-input:focus { - border-color: #4c6c94; + border-color: #8e2d53; box-shadow: 0 0 0 2px rgba(76, 108, 148, 0.15); } @@ -353,7 +353,7 @@ html.theme-light .blog-search-header-input:focus { } html.theme-light .search-item .search-icon { - color: #4c6c94; + color: #8e2d53; } .tn-image { @@ -769,33 +769,33 @@ html.theme-light { /* ---------- Code blocks - Harbordark (always, also in light mode) ---------- */ .ck-content pre, #content pre { - background-color: #222222; - color: #efebdc; - border: 1px solid #2e2e2e; + background-color: #2d2118; + color: #f0e2d0; + border: 1px solid #3a2a20; border-radius: 8px; } .ck-content code, #content code { - background-color: #2a2a2a; - color: #efebdc; - border-color: #3f3f3f; + background-color: #3a2a20; + color: #f0e2d0; + border-color: #4a3a30; border-radius: 8px; padding: 0.1em 0.35em; } html.theme-light .ck-content pre, html.theme-light #content pre { - background-color: #e8ecd0; - color: #1c2d28; - border-color: #c3c9a6; + background-color: #eae6c9; + color: #2D1A1D; + border-color: #c5c1a6; } html.theme-light .ck-content code, html.theme-light #content code { - background-color: #cdd3b0; - color: #1c2d28; - border-color: #b3ba96; + background-color: #dcd8b8; + color: #2D1A1D; + border-color: #aeaa92; } /* ---------- Eingebettete Bilder: Radius wie Code-Blöcke (8px) ---------- */ @@ -815,7 +815,7 @@ html.theme-light #content code { width: calc(100vw - 24px); margin: 1em 0; margin-left: calc(50% - (100vw - 24px) / 2); - background: #1b1b1b; + background: #1d150f; border: 1px solid var(--background-highlight); border-radius: 8px; overflow: hidden; @@ -833,9 +833,9 @@ html.theme-light #content code { z-index: 3; display: none; font-size: 0.75em; - color: #a99b7a; + color: #8f7a67; background: rgba(27, 27, 27, 0.85); - border: 1px solid #2e2e2e; + border: 1px solid #3a2a20; border-radius: 6px; padding: 2px 10px; font-variant-numeric: tabular-nums; @@ -858,12 +858,12 @@ html.theme-light #content code { text-align: center; padding: 48px; box-sizing: border-box; - color: #a99b7a; + color: #8f7a67; font-size: 0.9em; } .model-viewer-status.error { - color: #F44336; + color: #d78a6f; } .model-viewer-progress { @@ -874,7 +874,7 @@ html.theme-light #content code { height: 6px; width: min(60%, 480px); margin: 0 auto; - background: #2a2a2a; + background: #3a2a20; border-radius: 3px; overflow: hidden; } @@ -882,7 +882,7 @@ html.theme-light #content code { .model-viewer-progress-fill { height: 100%; width: 0; - background: #E1CE98; + background: #ffda92; border-radius: 3px; transition: width 150ms ease; } @@ -902,7 +902,7 @@ html.theme-light #content code { top: 8px; left: 10px; font-size: 0.75em; - color: #a99b7a; + color: #8f7a67; z-index: 2; pointer-events: none; } @@ -925,25 +925,25 @@ html.theme-light #content code { /* ---------- 3D-Viewer: theme-bewusste Overlays ---------- */ html.theme-light .model-viewer { - background: #e8ecd0; + background: #eae6c9; } html.theme-light .model-viewer-status, html.theme-light .model-viewer-hint, html.theme-light .model-viewer-data { - color: #1c2d28; + color: #2D1A1D; } html.theme-light .model-viewer-data { background: rgba(223, 228, 196, 0.85); - border-color: #c3c9a6; + border-color: #c5c1a6; } html.theme-light .model-viewer-status.error { - color: #b14752; + color: #a4405e; } html.theme-light .model-viewer-progress { - background: #c3c9a6; + background: #c5c1a6; } html.theme-light .model-viewer-progress-fill { - background: #5e81ac; + background: #8e2d53; } /* ---------- Bildunterschriften (Harbor) ---------- */ @@ -961,19 +961,19 @@ html.theme-light .model-viewer-progress-fill { } .hljs { - background: #222222; - color: #efebdc; + background: #2d2118; + color: #f0e2d0; } .hljs-comment, .hljs-quote { - color: #817f68; + color: #8f7a67; } .hljs-keyword, .hljs-selector-tag, .hljs-subst { - color: #F44336; + color: #d78a6f; } .hljs-number, @@ -981,24 +981,24 @@ html.theme-light .model-viewer-progress-fill { .hljs-variable, .hljs-template-variable, .hljs-tag .hljs-attr { - color: #e58980; + color: #ec8f89; } .hljs-string, .hljs-doctag { - color: #a99b7a; + color: #8f7a67; } .hljs-title, .hljs-section, .hljs-selector-id { - color: #E1CE98; + color: #ffda92; } .hljs-type, .hljs-class .hljs-title, .hljs-attribute { - color: #77838a; + color: #cf90a2; } .hljs-symbol, @@ -1007,13 +1007,13 @@ html.theme-light .model-viewer-progress-fill { .hljs-meta, .hljs-deletion, .hljs-addition { - color: #e58980; + color: #ec8f89; } .hljs-built_in, .hljs-builtin-name, .hljs-params { - color: #77838a; + color: #cf90a2; } .hljs-emphasis { @@ -1026,19 +1026,19 @@ html.theme-light .model-viewer-progress-fill { /* ---------- Light mode: Harbor light highlighter ---------- */ html.theme-light .hljs, html.theme-light pre code.hljs { - background: #e8ecd0 !important; - color: #1c2d28; + background: #eae6c9 !important; + color: #2D1A1D; } html.theme-light .hljs-comment, html.theme-light .hljs-quote { - color: #7d8794; + color: #76756f; } html.theme-light .hljs-keyword, html.theme-light .hljs-selector-tag, html.theme-light .hljs-subst { - color: #b14752; + color: #a4405e; } html.theme-light .hljs-number, @@ -1046,24 +1046,24 @@ html.theme-light .hljs-literal, html.theme-light .hljs-variable, html.theme-light .hljs-template-variable, html.theme-light .hljs-tag .hljs-attr { - color: #8a5b81; + color: #7a003b; } html.theme-light .hljs-string, html.theme-light .hljs-doctag { - color: #556753; + color: #4f6b00; } html.theme-light .hljs-title, html.theme-light .hljs-section, html.theme-light .hljs-selector-id { - color: #dc8164; + color: #b25d76; } html.theme-light .hljs-type, html.theme-light .hljs-class .hljs-title, html.theme-light .hljs-attribute { - color: #4c6c94; + color: #8e2d53; } html.theme-light .hljs-symbol, @@ -1072,13 +1072,13 @@ html.theme-light .hljs-link, html.theme-light .hljs-meta, html.theme-light .hljs-deletion, html.theme-light .hljs-addition { - color: #8a5b81; + color: #7a003b; } html.theme-light .hljs-built_in, html.theme-light .hljs-builtin-name, html.theme-light .hljs-params { - color: #3d727d; + color: #4f6b00; } html.theme-light .hljs-regexp, @@ -1087,16 +1087,16 @@ html.theme-light .hljs-selector-attr, html.theme-light .hljs-selector-pseudo, html.theme-light .hljs-selector-class, html.theme-light .hljs-template-tag { - color: #8a5b81; + color: #7a003b; } html.theme-light .hljs-name, html.theme-light .hljs-tag { - color: #4c6c94; + color: #8e2d53; } html.theme-light .hljs-meta .hljs-string { - color: #556753; + color: #4f6b00; } /* ---------- Admonitions (Trilium-style, gefüllt) ---------- */ .admonition { @@ -1135,11 +1135,11 @@ html.theme-light .admonition.warning { --admonition-bg: rgba(220, 129, 100, 0.20 margin-top: 0; } -.admonition.note { --accent-color: #4c6c94; } -.admonition.tip { --accent-color: #556753; } -.admonition.important { --accent-color: #8a5b81; } -.admonition.caution { --accent-color: #b14752; } -.admonition.warning { --accent-color: #dc8164; } +.admonition.note { --accent-color: #8e2d53; } +.admonition.tip { --accent-color: #4f6b00; } +.admonition.important { --accent-color: #7a003b; } +.admonition.caution { --accent-color: #a4405e; } +.admonition.warning { --accent-color: #b25d76; } .admonition::before { color: var(--accent-color); @@ -1157,22 +1157,22 @@ html.theme-light .admonition.warning { --admonition-bg: rgba(220, 129, 100, 0.20 /* ---------- Tables (Harbor, theme-aware) ---------- */ html.theme-dark { --table-header-bg: rgba(231, 90, 80, 0.20); - --table-header-text: #efebdc; + --table-header-text: #f0e2d0; --table-header-border: rgba(231, 90, 80, 0.45); --table-stripe: rgba(255, 255, 255, 0.04); --table-hover: rgba(231, 90, 80, 0.12); --table-rowlabel-bg: rgba(255, 255, 255, 0.05); - --table-rowlabel-text: #efebdc; + --table-rowlabel-text: #f0e2d0; } html.theme-light { --table-header-bg: rgba(94, 129, 172, 0.16); - --table-header-text: #1c2d28; + --table-header-text: #2D1A1D; --table-header-border: rgba(94, 129, 172, 0.40); --table-stripe: rgba(0, 0, 0, 0.04); --table-hover: rgba(94, 129, 172, 0.12); --table-rowlabel-bg: rgba(0, 0, 0, 0.05); - --table-rowlabel-text: #1c2d28; + --table-rowlabel-text: #2D1A1D; } .ck-content table, @@ -1326,7 +1326,7 @@ html.theme-light { } .note-state i { - color: #a99b7a; + color: #8f7a67; } .note-state.state-draft { @@ -1342,7 +1342,7 @@ html.theme-light { } .note-state.state-review i { - color: #77838a; + color: #cf90a2; } .note-state.state-unknown { @@ -1350,81 +1350,81 @@ html.theme-light { } .note-state.state-unknown i { - color: #F44336; + color: #d78a6f; } /* ---------- Peppige Garden-Badges (dark) ---------- */ html.theme-dark .note-state { background: rgba(169, 155, 122, 0.40); - border: 1px solid #a99b7a; - color: #1b1b1b; + border: 1px solid #8f7a67; + color: #1d150f; } html.theme-dark .note-state i { - color: #1b1b1b; + color: #1d150f; } html.theme-dark .note-state.state-draft { background: rgba(244, 67, 54, 0.85); - border-color: #ff8a7f; - color: #1b1b1b; + border-color: #e8a086; + color: #1d150f; } html.theme-dark .note-state.state-draft i { - color: #1b1b1b; + color: #1d150f; } html.theme-dark .note-state.state-review { background: rgba(76, 108, 148, 0.85); - border-color: #8fb4e0; - color: #1b1b1b; + border-color: #e0a3b3; + color: #1d150f; } html.theme-dark .note-state.state-review i { - color: #1b1b1b; + color: #1d150f; } html.theme-dark .note-state.state-unknown { background: rgba(225, 206, 152, 0.85); - border-color: #f2e4b8; - color: #1b1b1b; + border-color: #ffe0a0; + color: #1d150f; } html.theme-dark .note-state.state-unknown i { - color: #1b1b1b; + color: #1d150f; } /* ---------- Peppige Garden-Badges (light) ---------- */ html.theme-light .note-state { background: rgba(85, 103, 83, 0.85); - border: 1px solid #556753; - color: #dfe4c4; + border: 1px solid #4f6b00; + color: #E8E3C3; } html.theme-light .note-state i { - color: #dfe4c4; + color: #E8E3C3; } html.theme-light .note-state.state-draft { background: rgba(220, 129, 100, 0.95); - border-color: #b85f3f; - color: #1c2d28; + border-color: #8a3c2e; + color: #2D1A1D; } html.theme-light .note-state.state-draft i { - color: #1c2d28; + color: #2D1A1D; } html.theme-light .note-state.state-review { background: rgba(94, 129, 172, 0.95); - border-color: #3d5f8a; - color: #dfe4c4; + border-color: #6b2a3d; + color: #E8E3C3; } html.theme-light .note-state.state-review i { - color: #dfe4c4; + color: #E8E3C3; } html.theme-light .note-state.state-unknown { background: rgba(177, 71, 82, 0.95); - border-color: #8f3a40; - color: #dfe4c4; + border-color: #7a2b30; + color: #E8E3C3; } html.theme-light .note-state.state-unknown i { - color: #dfe4c4; + color: #E8E3C3; } /* ---------- Code notes: always Harbordark like code boxes ---------- */ #content.type-code pre { - background-color: #222222 !important; - color: #efebdc; - border: 1px solid #2e2e2e; + background-color: #2d2118 !important; + color: #f0e2d0; + border: 1px solid #3a2a20; border-radius: 8px; padding: 1em; margin: 1em 0; @@ -1432,18 +1432,18 @@ html.theme-light .note-state.state-unknown i { #content.type-code code { background-color: transparent !important; - color: #efebdc; + color: #f0e2d0; border: 0; } html.theme-light #content.type-code pre { - background-color: #e8ecd0 !important; - color: #1c2d28; - border-color: #c3c9a6; + background-color: #eae6c9 !important; + color: #2D1A1D; + border-color: #c5c1a6; } html.theme-light #content.type-code code { - color: #1c2d28; + color: #2D1A1D; } /* ---------- Code: line numbers + copy button ---------- */ pre.code-processed { @@ -1594,49 +1594,49 @@ html.theme-light #content .hljs-ln tbody tr:hover td.col-hover { pre, pre.code-processed .code-wrap, .hljs-ln-code { - scrollbar-color: #2e2e2e #1b1b1b; + scrollbar-color: #3a2a20 #1d150f; } pre::-webkit-scrollbar-thumb, pre.code-processed .code-wrap::-webkit-scrollbar-thumb, .hljs-ln-code::-webkit-scrollbar-thumb { - background: #2e2e2e; + background: #3a2a20; } pre::-webkit-scrollbar-thumb:hover, pre.code-processed .code-wrap::-webkit-scrollbar-thumb:hover, .hljs-ln-code::-webkit-scrollbar-thumb:hover { - background: #3f3f3f; + background: #4a3a30; } pre::-webkit-scrollbar-track, pre.code-processed .code-wrap::-webkit-scrollbar-track, .hljs-ln-code::-webkit-scrollbar-track { - background: #1b1b1b; + background: #1d150f; } html.theme-light pre, html.theme-light pre.code-processed .code-wrap, html.theme-light .hljs-ln-code { - scrollbar-color: #b3ba96 #d0d6b4; + scrollbar-color: #aeaa92 #eae6c9; } html.theme-light pre::-webkit-scrollbar-thumb, html.theme-light pre.code-processed .code-wrap::-webkit-scrollbar-thumb, html.theme-light .hljs-ln-code::-webkit-scrollbar-thumb { - background: #b3ba96; + background: #aeaa92; } html.theme-light pre::-webkit-scrollbar-thumb:hover, html.theme-light pre.code-processed .code-wrap::-webkit-scrollbar-thumb:hover, html.theme-light .hljs-ln-code::-webkit-scrollbar-thumb:hover { - background: #c3c9a6; + background: #c5c1a6; } html.theme-light pre::-webkit-scrollbar-track, html.theme-light pre.code-processed .code-wrap::-webkit-scrollbar-track, html.theme-light .hljs-ln-code::-webkit-scrollbar-track { - background: #d0d6b4; + background: #eae6c9; } /* ---------- Link icons / markers: internal links without arrow, external links keep a marker ---------- */ @@ -1695,12 +1695,12 @@ html.theme-light .blog-pn { .blog-pn:hover { background: rgba(231, 90, 80, 0.18); - border-color: #e75a50; + border-color: #e0a15c; } html.theme-light .blog-pn:hover { background: rgba(76, 108, 148, 0.15); - border-color: #4c6c94; + border-color: #8e2d53; } /* ---------- Mermaid diagrams - Harbor, theme-following ---------- */ @@ -1728,29 +1728,29 @@ html.theme-dark .mermaid svg text, html.theme-dark .mermaid svg tspan, html.theme-dark .mermaid svg .nodeLabel, html.theme-dark .mermaid svg .edgeLabel p { - fill: #efebdc !important; - color: #efebdc !important; + fill: #f0e2d0 !important; + color: #f0e2d0 !important; } html.theme-light .mermaid svg text, html.theme-light .mermaid svg tspan, html.theme-light .mermaid svg .nodeLabel, html.theme-light .mermaid svg .edgeLabel p { - fill: #1c2d28 !important; - color: #1c2d28 !important; + fill: #2D1A1D !important; + color: #2D1A1D !important; } /* Graph/node title */ html.theme-dark .mermaid svg .titleText text, html.theme-dark .mermaid svg .node .label .nodeLabel { - fill: #efebdc !important; - color: #efebdc !important; + fill: #f0e2d0 !important; + color: #f0e2d0 !important; } html.theme-light .mermaid svg .titleText text, html.theme-light .mermaid svg .node .label .nodeLabel { - fill: #1c2d28 !important; - color: #1c2d28 !important; + fill: #2D1A1D !important; + color: #2D1A1D !important; } /* Node shapes (rectangles, rounded boxes, ellipses, diamonds) */ @@ -1760,8 +1760,8 @@ html.theme-dark .mermaid svg .node circle, html.theme-dark .mermaid svg .node ellipse, html.theme-dark .mermaid svg .node path, html.theme-dark .mermaid svg .cluster rect { - fill: #232323 !important; - stroke: #77838a !important; + fill: #2d2118 !important; + stroke: #cf90a2 !important; } html.theme-light .mermaid svg .node rect, @@ -1770,8 +1770,8 @@ html.theme-light .mermaid svg .node circle, html.theme-light .mermaid svg .node ellipse, html.theme-light .mermaid svg .node path, html.theme-light .mermaid svg .cluster rect { - fill: #d0d6b4 !important; - stroke: #4c6c94 !important; + fill: #eae6c9 !important; + stroke: #8e2d53 !important; } /* Rounded corners on rectangular node boxes and subgraph clusters (8 px, like the blog cards) */ @@ -1786,101 +1786,101 @@ html.theme-light .mermaid svg .cluster rect { /* Edge lines: stroke only (a filled edge path would look like a polygon) */ html.theme-dark .mermaid svg .edgePaths path { fill: none !important; - stroke: #a99b7a !important; + stroke: #8f7a67 !important; } html.theme-light .mermaid svg .edgePaths path { fill: none !important; - stroke: #7d8794 !important; + stroke: #76756f !important; } /* Arrowheads (markers): filled triangles */ html.theme-dark .mermaid svg marker.flowchart-v2, html.theme-dark .mermaid svg .arrowMarkerPath { - fill: #a99b7a !important; - stroke: #a99b7a !important; + fill: #8f7a67 !important; + stroke: #8f7a67 !important; } html.theme-light .mermaid svg marker.flowchart-v2, html.theme-light .mermaid svg .arrowMarkerPath { - fill: #7d8794 !important; - stroke: #7d8794 !important; + fill: #76756f !important; + stroke: #76756f !important; } /* Edge labels: HTML text inside a foreignObject (div.labelBkg > span.edgeLabel); the label panel background lives on the g.edgeLabel element itself */ html.theme-dark .mermaid svg g.edgeLabel { - background: #1b1b1b !important; - fill: #efebdc !important; - color: #efebdc !important; + background: #1d150f !important; + fill: #f0e2d0 !important; + color: #f0e2d0 !important; } html.theme-dark .mermaid svg .edgeLabel .labelBkg { - fill: #1b1b1b !important; - background: #1b1b1b !important; - color: #efebdc !important; + fill: #1d150f !important; + background: #1d150f !important; + color: #f0e2d0 !important; } html.theme-dark .mermaid svg .edgeLabel .labelBkg .edgeLabel { - fill: #efebdc !important; - color: #efebdc !important; - background: #1b1b1b !important; + fill: #f0e2d0 !important; + color: #f0e2d0 !important; + background: #1d150f !important; } html.theme-dark .mermaid svg .edgeLabel .labelBkg .edgeLabel p { - fill: #efebdc !important; - color: #efebdc !important; - background: #1b1b1b !important; + fill: #f0e2d0 !important; + color: #f0e2d0 !important; + background: #1d150f !important; } html.theme-light .mermaid svg g.edgeLabel { - background: #d0d6b4 !important; - fill: #1c2d28 !important; - color: #1c2d28 !important; + background: #eae6c9 !important; + fill: #2D1A1D !important; + color: #2D1A1D !important; } html.theme-light .mermaid svg .edgeLabel .labelBkg { - fill: #d0d6b4 !important; - background: #d0d6b4 !important; - color: #1c2d28 !important; + fill: #eae6c9 !important; + background: #eae6c9 !important; + color: #2D1A1D !important; } html.theme-light .mermaid svg .edgeLabel .labelBkg .edgeLabel { - fill: #1c2d28 !important; - color: #1c2d28 !important; - background: #d0d6b4 !important; + fill: #2D1A1D !important; + color: #2D1A1D !important; + background: #eae6c9 !important; } html.theme-light .mermaid svg .edgeLabel .labelBkg .edgeLabel p { - fill: #1c2d28 !important; - color: #1c2d28 !important; - background: #d0d6b4 !important; + fill: #2D1A1D !important; + color: #2D1A1D !important; + background: #eae6c9 !important; } /* Subgraph cluster border + label */ html.theme-dark .mermaid svg .cluster rect { - stroke: #2e2e2e !important; + stroke: #3a2a20 !important; fill: rgba(27, 27, 27, 0.35) !important; } html.theme-light .mermaid svg .cluster rect { - stroke: #c3c9a6 !important; + stroke: #c5c1a6 !important; fill: rgba(208, 214, 180, 0.40) !important; } html.theme-dark .mermaid svg .cluster .nodeLabel, html.theme-dark .mermaid svg .cluster-label text { - fill: #a99b7a !important; - color: #a99b7a !important; + fill: #8f7a67 !important; + color: #8f7a67 !important; } html.theme-light .mermaid svg .cluster .nodeLabel, html.theme-light .mermaid svg .cluster-label text { - fill: #556753 !important; - color: #556753 !important; + fill: #4f6b00 !important; + color: #4f6b00 !important; } /* ---------- G-code / Zusatz-Scopes (name = G/M-Codes, attr = Parameter) ---------- */ -.hljs-name { color: #E1CE98; } -.hljs-attr { color: #77838a; } -html.theme-light .hljs-name { color: #4c6c94; } -html.theme-light .hljs-attr { color: #556753; } \ No newline at end of file +.hljs-name { color: #ffda92; } +.hljs-attr { color: #cf90a2; } +html.theme-light .hljs-name { color: #8e2d53; } +html.theme-light .hljs-attr { color: #4f6b00; } \ No newline at end of file