From f239e1d80883ca520bf785a01cee7e6b96b41412 Mon Sep 17 00:00:00 2001 From: Typogalaxy <136544101+Typogalaxy@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:15:33 +1000 Subject: [PATCH 1/2] chore: add branding elements --- .github/assets/logo-lockup.png | Bin 0 -> 18613 bytes README.md | 6 +- README.zh.md | 6 +- branding/LICENSE | 29 ++++ branding/README.md | 55 ++++++ branding/logo-mark-128.png | Bin 0 -> 1158 bytes branding/logo-mark-256.png | Bin 0 -> 1790 bytes branding/logo-mark-32.png | Bin 0 -> 710 bytes branding/logo-mark-512.png | Bin 0 -> 3171 bytes branding/logo-mark-64.png | Bin 0 -> 847 bytes branding/logo-mark.svg | 225 +++++++++++++++++++++++++ branding/source/logo.aseprite | Bin 0 -> 605 bytes branding/web/apple-touch-icon.png | Bin 0 -> 1516 bytes branding/web/favicon-16.png | Bin 0 -> 323 bytes branding/web/favicon-32.png | Bin 0 -> 710 bytes branding/web/favicon-48.png | Bin 0 -> 809 bytes branding/web/favicon.ico | Bin 0 -> 3262 bytes branding/web/favicon.svg | 225 +++++++++++++++++++++++++ branding/web/pwa/icon-192.png | Bin 0 -> 1525 bytes branding/web/pwa/icon-512.png | Bin 0 -> 3337 bytes branding/web/pwa/icon-maskable-192.png | Bin 0 -> 1550 bytes branding/web/pwa/icon-maskable-512.png | Bin 0 -> 3336 bytes 22 files changed, 540 insertions(+), 6 deletions(-) create mode 100644 .github/assets/logo-lockup.png create mode 100644 branding/LICENSE create mode 100644 branding/README.md create mode 100644 branding/logo-mark-128.png create mode 100644 branding/logo-mark-256.png create mode 100644 branding/logo-mark-32.png create mode 100644 branding/logo-mark-512.png create mode 100644 branding/logo-mark-64.png create mode 100644 branding/logo-mark.svg create mode 100644 branding/source/logo.aseprite create mode 100644 branding/web/apple-touch-icon.png create mode 100644 branding/web/favicon-16.png create mode 100644 branding/web/favicon-32.png create mode 100644 branding/web/favicon-48.png create mode 100644 branding/web/favicon.ico create mode 100644 branding/web/favicon.svg create mode 100644 branding/web/pwa/icon-192.png create mode 100644 branding/web/pwa/icon-512.png create mode 100644 branding/web/pwa/icon-maskable-192.png create mode 100644 branding/web/pwa/icon-maskable-512.png diff --git a/.github/assets/logo-lockup.png b/.github/assets/logo-lockup.png new file mode 100644 index 0000000000000000000000000000000000000000..063046e6a74bbc7595ccc26a43d415ce4e093761 GIT binary patch literal 18613 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 4400189..2fcbd71 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# AlienCommons - -> The common planet for all Minecraft players — a community platform for publishing, discussion, and discovery. +

+ AlienCommons logo +

[![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.14-3776AB?style=flat-square&logo=python)](https://python.org) diff --git a/README.zh.md b/README.zh.md index 380c36f..18dacc3 100644 --- a/README.zh.md +++ b/README.zh.md @@ -1,6 +1,6 @@ -# AlienCommons - -> 每个 TechMC 玩家的共享空间 —— 集发布、讨论、发现于一体的全栈社区平台。 +

+ AlienCommons 标志 +

[![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.14-3776AB?style=flat-square&logo=python)](https://python.org) diff --git a/branding/LICENSE b/branding/LICENSE new file mode 100644 index 0000000..ffa278f --- /dev/null +++ b/branding/LICENSE @@ -0,0 +1,29 @@ +AlienCommons Brand Assets License + +Copyright (c) 2025-2026 Lazy Alien Server. All rights reserved. + +The AlienCommons name, logo mark, wordmark, logo lockups, social-preview images, +and other visual branding assets contained in this directory or in +`.github/assets/logo-lockup.png` are not licensed under the MIT License that +applies to the repository's source code. + +Permission is granted to copy and display these assets, without modification, +for the following purposes: + +1. as part of a copy or fork of the AlienCommons repository; +2. to link to or factually refer to the AlienCommons project; and +3. in news, commentary, documentation, or community discussion about + AlienCommons. + +No permission is granted to: + +1. use the assets, or confusingly similar assets, as the branding of another + product, service, project, or organization; +2. imply sponsorship, endorsement, or affiliation with AlienCommons or Lazy + Alien Server; +3. modify or redistribute the assets as a standalone branding package; or +4. use the assets on merchandise or in commercial promotion without prior + written permission from Lazy Alien Server. + +No trademark rights are granted under this license. All uses must comply with +applicable law and must not damage or misrepresent the AlienCommons brand. diff --git a/branding/README.md b/branding/README.md new file mode 100644 index 0000000..157e4d3 --- /dev/null +++ b/branding/README.md @@ -0,0 +1,55 @@ +# AlienCommons branding + +This directory contains the source and canonical exports for the AlienCommons +brand mark. Product code should consume copies generated from these files rather +than treating an application-specific asset as the design source. + +## Structure + +```text +branding/ +├── source/ +│ └── logo.aseprite Editable 32 × 32 pixel-art source +├── logo-mark.svg Canonical scalable logo mark +├── logo-mark-32.png Native-size raster export +├── logo-mark-64.png 2× raster export +├── logo-mark-128.png 4× raster export +├── logo-mark-256.png 8× raster export +├── logo-mark-512.png 16× raster export +└── web/ + ├── favicon.svg + ├── favicon.ico + ├── favicon-16.png + ├── favicon-32.png + ├── favicon-48.png + ├── apple-touch-icon.png + └── pwa/ + ├── icon-192.png + ├── icon-512.png + ├── icon-maskable-192.png + └── icon-maskable-512.png +``` + +GitHub-specific presentation assets live separately in `.github/assets/`. +The current `logo-lockup.png` is a 1280 × 640 horizontal brand card combining +the logo mark with an Alegreya Medium wordmark. It is used at the beginning of +the repository READMEs and can also be uploaded as the repository social preview. + +Brand assets are covered by the separate terms in [`LICENSE`](LICENSE), not by +the repository's MIT License. + +## Export rules + +- Treat `source/logo.aseprite` as the editable source of truth for the logo mark. +- Keep the native artwork on its 32 × 32 pixel grid. +- Scale raster exports by integer multiples with nearest-neighbour sampling. +- Keep `logo-mark.svg` transparent and preserve crisp pixel edges. +- Regenerate web icons from the canonical mark instead of editing them independently. +- Use `#4B3832` as the established solid brand background where one is required. + +## Terminology + +- **Logo mark**: the standalone book-and-laurel symbol. +- **Wordmark**: the typeset `AlienCommons` name. +- **Logo lockup**: the logo mark and wordmark arranged as one composition. +- **Social preview**: a fixed-size presentation image used when sharing a link. diff --git a/branding/logo-mark-128.png b/branding/logo-mark-128.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fb77e09d1b70d5c16543c497df19aa4512cc20 GIT binary patch literal 1158 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-HD>U~%wtaSW-L z^Y-pp?@&jXV;^syUUr~$HHRa|B#&F{Vu_9lYnhZaGGsY&nYJ&>i)C}lV{TQ*klZ4m z@|W4EC%}V+Q~aXSiqI=n^ODPFq@C-wyMO*&!F$_tmUd^}?>Rdsjvr_r1H%rBt7Xiu zwi%WG_TPVAes2WtH^*1s`*&Z?HD`FM#PE!xVdv&t^96Z_mBX8#9{ziF-+g(T|JD(5 z61&vyN9bPLrni9Iz@6cYAVYEQ{LA~|cZkkO&(D3&I={b#N_GvEc4IX?7dW8yVBIG?2JHm|E0HoKYsS{D(+eg zH#wd?B7PoM)|1}j-JYf;$+ctal(@T$kdTBVZ&srn5>RIlFKM&6BOo;qmu2scQ z%yK}6(O`NF&w}KqN#8&BulTw3(yTp3*Z)gAe)@WC!q1zNFE06d-S_)^Ibofi*Ef!C zUGnuZ^9*Hh@V+o?nCE`}-v78Sd-mo+XMc|F20`6}~<^dwk9P`?VFDBciKhbNcNTuXt=UrSCG_e^Zkg=AQoc z=)%%{+7}8L4Og0ODLH#)>g{=#Zp%wg58NuPa}nmQQ-%k=eyl#Y>6%WhoPyc$-d9n+ z`B5+5UVp7;wQk`rpJa=?204(gfw3Rj$2e==YO`h8*YEAVCKo!Ff8qaXzL$)kRKao} z=J9);M{y3@x6OwsPdzWXCh0s&+1h31YrlMZT`i=(jDJ#{KR+nKfF9elo_WjPchOH4 z!r~tsxR6A4vY2)C*Qc72;v2rMUoYqRe82zIFTXjGX5E{2IpSZx~FaMUn ze7p7f_A9fNZ8`RGj;q&v^$WA+SIaugm-LZ0pSbK@vKlN=Twhtv{N>-`W5?^_zZ?a5ux00!r42A@By3@^i8T)OKq10>+->gTe~DWM4f+5#z> literal 0 HcmV?d00001 diff --git a/branding/logo-mark-256.png b/branding/logo-mark-256.png new file mode 100644 index 0000000000000000000000000000000000000000..53aef3aaf5e850175122140f1159cd0f3c5cbf59 GIT binary patch literal 1790 zcmZ`)Yfuws6kWg~K4Yu3R-x(WO#8zQSW#?HcSZ4mQsSsZ1QSq4D2k%Sh!S=~r7hD@ z!dQob1e!XGqC65MMjkN)N;M9cAUGrxNLED&Nk~#Ak0se8+t7!_y6&I-zL~T4o^$SF zf7qF@bZCH)Q$AX8*A6rjet-UY5;)XrnuOcJ!dP- z+V%^HUxg~3HD+CYdNA?5prCIyeQ}4f>bDtzneQ)Z4-po$6|G27oLsvj=Hao&8|K|v zkUV>vdwOjAx96A6e!g^n$lV{^6cs&sNCoThb%PxoYbCC8op?ILLGK6pb54EA_&Hms z0PM_JLl|5hwJOH8xGWdH=&+0i0T12E(Qzx zQ1qxB75Kc)l|g@Hmb#`OAf9qXJa zb+!n}k;*)7qZRyq5T!;bL=5fd@19j@5x0?tm&uAuhwGIdKjpywA zRNrco-dxI%sF*T(n$i0tQ9C_yHMvt?`oMfXL`0b|^`@2Nkg3K0ukZXWmso?E8gmYe za=h6vrhlj{MO@>Wt2p5?(F-l|=bk%e>+vW;{xfyGVZi5*()rfmx0rm6+V-p}Lpe@K zgvO%tOD<=(fT>q59Ipb;KlrO>Fm7jl}=(AA`sN%E6%Ezc=8O&IQBtxA_c zEMe{R5Mif}p|f9~gn!I<2?JfnE!OWK%N79@SVtfm?#enM5GE9!6Eay$SL^uz$^4?3qtG9IzT&Ht+!2% znoAmZ;r@Z{ksX6;kn+=bi7chG(89IwaEz6SBN~DpLEZs#7zKGt^s0(*%ltBRha#dy z)iXLQKf|t~Avo@Y7s>>Jfd(!lQ=o6*CzexwIhAeQ$O^;$=n;?Tp(O7unhtL*=(*0+ zeBa4?yYTNd=4vSf!eK*U3`5#$hD-`~L>8Et?fK#c9~(PJ-7^OfWJ zt@QHYKF2x#HrXfOzD0?gl4g%SA|VQk6`)lsO#mG*z=B$L*Ou}XIX5wP3#Xd4&g~YK zk?yUm32|p%bf&1sR9AJ42;U$YM&NRCq(O6{nps`H$JB&N`3yy)g!Om`k*FXy3`{m5 zlPx%fJsC_R9J=WS37IlP#8U`z0{CFlL!VuKq6RVFDS)Cg@WmtQgFa?z~CjI)sDPs z3QEb*kj3$)HvAAc zmO;dVi^VdB=h+iZE+zs1+&#`?^CSs(k8?p+B+|3XWUpbFxDZtty7HUY z?Lz4ccJcModx&06aS3b{_ppC-F6fFxopT|pB{ zjhg14N5O6%!fbY7AM61b_~(8fsJ8mT&DCwB0Un9C|54aKIuCrgKqET6zJF1?vmkRP zd@ba`bTj~He}4!Gvf=ss?PDex$1=$C>d1cwe_s)4Ze|tO&4~$-`@f0A9rbeIRKVy+sIE zgjzAylJG4;&^+En#hm;9LuL4)@tFaCM<0Nn7<301`2uFM8&HUw5ovVT?TDNG?EI!9 znLTgRG=CVKU5=1OhaK;cfzdqdpLNWm?`VW&=h&3<_Mpd0xXJg2NI zU2uk-I!V)S!0vFoosPF=@y^oN3Ncz2N@AQ8f;2W$DN#jw`>D42g04tp-Knlfq*2qD sY6|Mdy-Y0Ft5@7LjLK%cs{MQT1BnPqDs1wCn*aa+07*qoM6N<$f}5^MM*si- literal 0 HcmV?d00001 diff --git a/branding/logo-mark-512.png b/branding/logo-mark-512.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd88bd51a03460053937c77d212aabe4a01990e GIT binary patch literal 3171 zcmbtWdrVVj6u-rjP+kS9A}uYH3hm{>ZF}!-{~$3=ob%p)zWXKL_nmWo z=lst3T{sjK>FVO{0sw&PzP;f`0N_3R_dQ_sN_?^8^dk7;#5fWe2Gq+p=mB8O#(m+T zU*}vij(lEnh2~!PG$W+T<+D1U)nUm#;oYRtl0S-94AR?AhPDT-ZFC->Kj{0y+b7j~ zS<&wOo9-9-poMGKgl-DGnA{Y%e0cvbrLnP2aWQ~xZAG%%vgHeHrr|qXBGEG3D3K3S zH>o@do6p-z8e)^Mhr$kJaIzY9I|;@~oq#72UjXpl3jn(>0zjd+699zbA)i|g0Lz^L zVD*Opu-0d(1F5m;z(e`90-6}@uhDo7CM9+L^${s@QWI#OKD&zD0X-ha-+8;YUT5s* zY`FGU}BY zwNw%puPm8m$AO``(Yx*FeI?oOqi<4qJ!ZQRmfx57xZMSFNYP_EUojiW5=G^RJR2heyWZz^alzos%$+|4!j5= zR+Mk7us1fE#Tpe?p+$Mw+wKHi6`rY4^KC7;?RoOlWX5I#%+Z0T z5R}54dvwV-4%x^FMuNy&+-!QOtgJ6u7Z2hYzypA@qNVPs$xSM=xafN_<}aZvWQbAZ zCPM(x5G7$q558+__ck5n6^j|rt)_VowwcR8bblF1%XSxhqx18izORb%DQ8!+2 z9U57OVCdoL48lG4r@=Yqgtp56unZ()2Lhe`@9=p!f)r8ivQ^gg)PsF|^33eS4zqh2 zI6KxoSzY7$4G*iTHpxN~K>Y*JC+fdli1UuFpl+Z_R{--}I|+IHZbSFgxR0i7^h{*h z(<#^!)f9S#h0AEOh)dA}kI4Qa{N-AnO=J0hba`a!cL zQ2^n=wzAg^%`vAT=2T1%+)1xY8;0$q=LETCa6NMyM=*Ii$BHW%PCYp77&TmOr9h?L z#bMDQvQ^cu$%3r#Ldlo_l9BD-I_3!(gzBx}U4o2LdBh2KadHuil9LbCVz}NgKldWD zepm5jigayRPh})ub6sU>h&Gj1^lLORgpnQHd5+m#tJ1~y8;!gngB5nj1kF~h{niMv z4u6?fY|Cpjn#DE0m|NWDNZahT`r)7rMi3WODVUolMQxzvAef_GGVOXeV0?ief;}R} z{Xe&yioo0bHZH9#muIzLR4LY~f=!pLY-e2AE-hYP=F#hzNJMcv?qVtsa2Cb?z%gK@ Pj{UwpQQ`Gr$>;t7@0PM` literal 0 HcmV?d00001 diff --git a/branding/logo-mark-64.png b/branding/logo-mark-64.png new file mode 100644 index 0000000000000000000000000000000000000000..d7845ff58277a3ce9b26cb9945ef9e2bfa375c6a GIT binary patch literal 847 zcmV-V1F-ywP)Px&2}wjjRCt{2Tfb`*K@|RCY!p(Y5;+J631YApqDT~kU?oHZh13DTMz}U6X|EIl zrWFhbf~8;)2%0}YpmDAaA;XOGbqk!Bx&{FFdGs~+eEi}c0Ki!5`stI+ zTJ(vY0m19+L+5q^0NuSq0KoLr1OQ;Jz2!6}-((Ng+H&w$`P;PacO2>{%DvQ}uJ?fsL1_;D$xvpSEg9==cp zguYmp#RsiN^bGjV3os^UWX4_g_~;t|;Q9JNZibt(yp&HS(2G!S{tlDZQ3lvLa0bUu z{qD@n;G`*}`;Te_v2PGNCie>~gEHzcN5R;2K?i@ZD)``+}C`o?vRP3bqJQ8DMHy ze*dLW|6UiOXMj#X(+V_=e|v!GjE-1+wd*wC$G4yQw%>bntJZNCQ8JeynA0c&_<^Ua zms?kI9heJ9m@MRK85?ZlxXPEgOo{_Q8IWPXjoJG^W@Z@&$P*W$DocmLRX+DF<{D|F z*~<--0sIhpswy#TUVuo?A@X;Q%7D-p&x#kYK^Y()$WviLMuKO>3-C^Iu61zD%Z6C~f-UX$fq>kUHd3?-sxfO9rTZ@?Pgv_7zxGx)AWS4-Q* zl@%uXMW6VWrkx=zwaFpsilh-JNi zM5vz10N)o(Gfi;DP5%L+ + + AlienCommons logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/source/logo.aseprite b/branding/source/logo.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..d07a176ca1d651ab2e5ddae20d1908dc509ad0ac GIT binary patch literal 605 zcma!LVqkc%l#xLJ3>g_17*c>30oWNBL4phdKu8O47ijvgk1SwYS%4OZ0WrG**h(bp zT!3sz1$L+i8%S~eDT@L#OaqVx zN-(f8_#{@Q7KH(AWL02bU}Ruo_zw&c2#{ltVW^mMH~b*)Ap@Q_Vl|Z?(ir4Cat?^t z%wW3b(GwV!!1zqdYKgP@X}>v6cD*TEeQU~BzKwcmu%-X_SA&CZYTtj9I)C}|w*MIq zyPnqKb^+_vl1`l@4= zuO>f<+NH;SJy*BltJq7o89w`ix}SxbcWb^(`cM;MwfxEtujl&t3ToT()4s2%tLocO zd+4%`t#)~?-r=R$TQ2U|r_v;uumf z=j~nljJcr_$3L21bIsJ$j6Buq&>p}umn(^_UCCmLtg>I>yD2%bMkyyQs74!?uA4l= zviZnK#{vPTPLDPxg)5F6K`+%xbw1ho?`i*j-uCUvk~@|An{3&%TpsF89yo@8P}6*IaNiL_(1(YNeaceqFtG+vLleKis-H_34J% z{}0~ZoB!JAqVaU8S2H)KcmLWl?VnB}vK@_Lr()JUJ>hnLW=6{V-Yfe5Z1``N%iW## z>+`P}tQs>lHGk`U{NC~F%cHYXSI%E37KY@TkpHi$tFzZ${q`ht&jnlQ3$9|*)#lF2 zj+^@B;=OlOH|Bk<=S6ek%DQQXXLjGzeEECXq<`C;xQ{wO(b5Xrk}Zzq+w7ya&HHxs z=jpK97eDp_?Q1)D{I|mE=Q$fB);>IEG$D1_>!>2_Ede}8i0$vya?*mu!~#$@lv6_WrrtfBwhoZuY#$DR}nb zm)(D(7q%uXK%k(%Q(C$I+*j27Am4=?@<*EwW%zIUbN%l2!`E^O%a^n@9{Zi}rtV&) zNP6=B1%JKY387iY^Xt`bU@}z9*WVg}Y6Y@&Kz7idSJro`bvEwZI_=MC&zHyl9e+Hx z+3){Hev&{in32tTfd!qt~Bj#naHYH;hI8*1Z4L_v_}pmi6c2 z+uq)e=8wwtpXXQqp++7pF-ew8Q@(v{!Rr&|yWc;$RFKW-l_vCS##4#kpV#@m+j8sM z<^7j?H++4uqxNrrG&p3VDZi1>FVdQ&MBb@0Lkd;eEPx#{YgYYR5*=eV4x*f-st!rnI;PKr755&-qCIMADNBJ#|f-d#IY)}QW5`ubXgXr z-10`p|D-q**(EG6!N~gkjOeC6x_zBt^5Sa@xv^Rda;lnGj5@@?1k;SoCYUB{nysUz zF~VJd9x%IC9bsT#U|?_!v%x90ywUOh^QZSA2AnwhfnnE`mkixaIv5&Z09|bI;%f}u zO~DW^G;Fv8_X5l&TmV_#I%*mt3j#i|)u z&ZG1YX29?0w!=sd=!ptvN`$2WPx%fJsC_R9J=WS37IlP#8U`z0{CFlL!VuKq6RVFDS)Cg@WmtQgFa?z~CjI)sDPs z3QEb*kj3$)HvAAc zmO;dVi^VdB=h+iZE+zs1+&#`?^CSs(k8?p+B+|3XWUpbFxDZtty7HUY z?Lz4ccJcModx&06aS3b{_ppC-F6fFxopT|pB{ zjhg14N5O6%!fbY7AM61b_~(8fsJ8mT&DCwB0Un9C|54aKIuCrgKqET6zJF1?vmkRP zd@ba`bTj~He}4!Gvf=ss?PDex$1=$C>d1cwe_s)4Ze|tO&4~$-`@f0A9rbeIRKVy+sIE zgjzAylJG4;&^+En#hm;9LuL4)@tFaCM<0Nn7<301`2uFM8&HUw5ovVT?TDNG?EI!9 znLTgRG=CVKU5=1OhaK;cfzdqdpLNWm?`VW&=h&3<_Mpd0xXJg2NI zU2uk-I!V)S!0vFoosPF=@y^oN3Ncz2N@AQ8f;2W$DN#jw`>D42g04tp-Knlfq*2qD sY6|Mdy-Y0Ft5@7LjLK%cs{MQT1BnPqDs1wCn*aa+07*qoM6N<$f}5^MM*si- literal 0 HcmV?d00001 diff --git a/branding/web/favicon-48.png b/branding/web/favicon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..32943271e992df40e8312ce4dd5694f4025d0533 GIT binary patch literal 809 zcmV+^1J?YBP)Px%<4Ht8RA_1GA9;cnwQx~>xwOG3X0EQ+kk3tkkhn^{3rVvO?Kp21Q7-*q z@B@s=cmTk4&SH-Wy>^9Bv5SJ;JOBW^dU_9eF8jr9V7;&fKHE@cP(jh$M6c~{^26sL z0H9H`0%KG_^V-b=batqU_XA_H4%j0>z9*I`m@(hA}5`NkBaQY_}ruI?vIS@SYYV5xLM#MCUP+Lr;k)P;1r1It3{T`2V%2)z&BrUx{A z8U`5XnkPc%);5bgS*tPi7KklgVMhuG?G@RWM$HP`iRpP3S+aJHQuXD#$8_LR`A8uy zCa$NX+Rf&XdKZd4N({PnMjtAso#|01(UAoglA0!L*SeM3h)XxE)#E5-w4MxA~6P6AMc|h3cVgCPY#4V^$ghsBDXu;j{0Y&adkL7k~Zp zu10qKY5j?QL9+g2d}CdRAQ<^s$|WVA6lS*Y`EAZbOf?(ulDVM;<#+e!7$2VC!OA+~HRuKphnCbcPxi5RoiO + + AlienCommons logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/web/pwa/icon-192.png b/branding/web/pwa/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..300830ce10e16556c19b6534f3c6ea3bcbe33005 GIT binary patch literal 1525 zcmZ`(drXs86fbNjLnNAE7)t@21{JVGbSUqKU;!N^Fj}qq7;1Tl2t?Y7JjYNQz<^6Z zv=nGnU;|oWv7jv$#Q_;u%CpcSbfm&4pYR3fi&DzEEtzeXCBJ*m`QzSm?mfTrJH=6v z$emVSTESqjo#A02(R%ypuVuMSzem4I-L5xgnbF8#7;_LVgTX9X!$X3;&7v+%2P9Ww zzUW)27T1UV3*8UDPO(>qSK=*NthNPpOId66=5%v+D>KlbD zM2ItZ9S4-IO_XNjs$TOStqB)PDv0C==&DCCq3VDK(ddSZQaK z%TWwzc`O*)z<>oGGeEQO(fX!4x&tYVH-3T<=YR8$)tIB&t74AipeT<1iUE}9E!&&7 zsRJAO1a}oYR%~mV-@J!tCex(8^#F}L+Loc!d^kP)8OyIbVtnyBew?4oP~;I5+B2#L z18|2vpMeX;MBXPB@;I69Z~@0m#0eC|#n<)X_xssP+Pk6aa#k@5k==C!^b+_{3<(l0>ib;qbfR@Uh$=$50 zo=x@~JviF2Z1xRCP@oFZZaj4Q71UO+%#9SpSmy@no008*8-LN{>xOOikH4pDM+LLL zdQudJ(#<`QkI_lo?XhKKkz^`4Tg$YbdofN~uY78p;F?UQSyBPi=R%v+hqBd{g*8U& z!6{L$?)dVZ%6#5^o?piZcsRkBK5P;|dn@dn%h0};yTQBsxx34%cx_`?Mp`(?40GOy zi(uz>G*+1Wy=KX_j&Ga8&2lVjWiSsQOH|I_l#dHQNMH0LWwkO>6%eMhYF0g{e3_vg zmL_dU#fbm(K0s@kiUC`7AJn6B?GUwsh)E$7a=an^l*q`f%`czm9)2uUuQ3V^+PnTR zWNiS7z;XaXLX3`czhYbGoj&&qJr^=5sUi)aVW*4E3S%cbbJzv>lUN{Z$d$x(zJ;jK7@}n&V!Y~xczy5|D5(r)eF6vkgHS_N%d9YsYOwYAKMW0)~23e74-BGp1G9RyLJtw2TvZ0T?{yJ$zz ziltLjOaRjkqf94Ui^L0()iOd6LK;him_o2fVgey(HZIBDx=^QofNQ6p-uQqdsVaS7*WH~C!>fPBTZ}57uLE$;5 zHW7fy;W+@zo)5sA?*g!52LM~Y2cU3;7XaJXK#zL^;Qb%IP_FmgYS4_9T@W$4r(HTy z<=~}6af;(%O(M8gw~tB|GR97xpQHCPGm3oF2p*4@$+`WAMe$?1z#vRJ%PxfLW%qo3c zEr^P6=0H+J2sPXB#%P9)QJSETkS1JsZP97HLZNjGEY?J$P+Zq5%3-W2K%J9^Se?h5PD*FyoUx2VR46wUI9(DN z!#71Z(F!tD&X|du2xrXr@X0!>g~9H2O6Uh?ucd1FFcQrmp-0JsLR8KzbsLp_aq0Pd zY)~IqTz4dr^6tagsd^u9q&cKoLnZN+I1(P2@{3E(sm(_;lkru}A3De}Js z$<_GX=r)V?dbIz|qjcIhyoI2V$w~bQ`!C12qsPv|F18*3B$!*&Yz{fD0<7+dCzB)h zEhct`kaMC1lF|*L79y85O$s~OZ43K97ePkKoyThDPJwaVqdNxMYL&ryrc@uewt0G# zjG|0}VxPYTBA;1fA;jn=YnnYcSHiy-j-OW~BlBJ{CR+vxpV#F8C zMI}kKi7UBt^l(eaHJ;dsR+2$-G~0Dg0;gGAl6<41O0id}plp`R7CXYIA-Ra6&Q6o1 z#O(N!&J`leol@P=%2!ZVJ@z(sDKm-Rmr?~~N&EZP86__1vw||51+mD!>;)$ zMp*HjU9QH<`vj~o%hM?%>8b4ic08jcaIU_IgK;uumf z=j~m?jJs|!#|wA9yfjHbW={)y8;{zR6s{>%F9f(`C-vyfy<<6fZ|cVf2c5<9zfQ57 z>t$Q5@$SmP3kwsPygv#U*j!qe;N`V#(z$DYd(Uq=XSMhJ_su^ie0k^jXUF&Le#>_* z*XF-(E_8+6x!gf&5~IK@s-j!%&gBWy*4pl?eQ0+7{r}6E`#*oX`qYAn<17OVDeYKr zbgBQOZQC!0i@!7f|FPcl_S%!pC5QjU?=JWAeaxX?#jIcgMq749*7&~q_3G@Bw=aIE zWJbqD`P?e|{!jPX`e$?YJ$0Fur6SqvQYxe$fz9qx)-lci@Z|DB}y;|SSYg=ag_9)~qT{}z3 zqKet;T=5=fkv$Vv{D{fEbZAHJ_osoEw*5O>^!&Vx({HIQ-H(=K&YJ6fP&#kc!}+`*`+D6Ovxn)ai6}PhUf5&tp7R3V-HGlJ4@t55`i%bI^f9*fDR`UsR^gMDc*rSoPH=Ch1v+e1O zUs9a+7wxRy+x@}{DSfWJm-U5f4sTWEl;Ug1X={sP*Mp4S89zQA|Ly5*vUXeU8P}Tu zKw_$2=3!0O7W>Wr zS(Cl~a^1waZ?E3#E0xXq@y_(jpC05;%6<3p)Zy>W<&TVZ?K4#~+HbJ)+WG9J?Tg;* z^XdNe;;iPyve>6J@6#HJZCQ|=(z}i$FFJnj%q_CA^Hp-o)xS^LcE|cs?W?GWX?jYF zKhIcwZTB8a8OD}01}F;qy31kWH<6dX9D361w0HNxc`qOBcE0mcC-zL)f4`THwqD%j zlfP{J%l^t~cInBFkOF$kMe&2-6N4W-TPG_bo83{`Uex_< to8qr1X5^4r*qv|^o}wV>igNNl^OZp5o;rn1W`c|O9oLAvlM}dT*5^XNE*W}5CSA!>`eR6r{&qFfB%`C*>k@0UCv$& z^d}jwvsecJF!uI35Cp&q^l=3+SdAXjaEAsx^e923{eUgB90S0p$@{?fN8nOL->xeK zkj0CMiHC$;uP!@BMSXQC*X!HCCp*{%Yl6-BZtQlK&i8jX)z#G;3af+TB1~uSSV0DM z>#bpZMs~IJrD`uz*NIlcn_HD>uHtJ`x`k^LTp7iwFZEo%*V2o08DKH zV1qRPTf6|+_Y(lwTl4_<9xe2uJ^=b_0WjG3`Gx=C&{lU857a552jO8FCo9Y6mSxQ0 zFveAAWv1(1%y99uBmER%npjvOtxy&w7e>5y(WS$Z21P&%{=6E_Sgn53i+MQ0u%3p= z_)hvjAGa|r3YLu3NO?|0jtV2hl1Rjrbz2_}FCiqf%ZGI3euF3>v5ouu+0He$qgtc$ z?GBmM`i7JxFASZ8B{ODt6U3Lp=0{3GgPajLK^y8nr}M~6NrhJ*dZLGgTmO}xESG#7 z7xc~N(V@x=srI)jlSf5bqdj~}T@j->I!P()9~TtN;!d2!%;7@4T?y>CZ%kEz652~{ z9j5x0#BuAmO0WMQ$^px=?oSg_cXkgl@p+l%nmJNHKR)y2X44xlitUt4JHy)%ET-eB4t)PJjfh2BYAp|IS8@R z{$Aa4^N20ZvH|&Bp40qZ2geb6a?Lx)s-j%4f}dl`Xddc^hRd@U&1xw=1{;G@^?b(% z#z)2lcOZ5j$yvw{MITjk^GL*VyV zxe=Hn1omzQMe3@!C?~C2K zVp+z#E~+=<&i0a+{BR#7uIuM7FsEGHzD;3`=}BKqu9`1)I1Q_PZwpDM%o*byCfxoD#d}U^gO% z%}A^)K7;e8jR`ecB!fsyT9ExUF32N!7$Lp&b8~HoxIqW2arbSP(^c2I(dhDK3rAV; z9k&Z?c9N!vUo^qnzX(X+? zF^P&^#ndB#3=fUPZ2NHZ e|Fg+x4gX*rB%dWYxT3!{!26*80rvjLi+=-&>XW?y literal 0 HcmV?d00001 From 70ba3ec39d995e1ed59d551a20f41acd16fd23b5 Mon Sep 17 00:00:00 2001 From: Typogalaxy <136544101+Typogalaxy@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:27:14 +1000 Subject: [PATCH 2/2] crop logo lockup --- .github/assets/logo-lockup.png | Bin 18613 -> 17126 bytes .github/assets/social-preview.png | Bin 0 -> 18613 bytes branding/LICENSE | 4 ++-- branding/README.md | 7 ++++--- 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 .github/assets/social-preview.png diff --git a/.github/assets/logo-lockup.png b/.github/assets/logo-lockup.png index 063046e6a74bbc7595ccc26a43d415ce4e093761..82ffffa5e5b80d5bd77b24bad8f4406ad23b8256 100644 GIT binary patch delta 7168 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 AA^-pY diff --git a/.github/assets/social-preview.png b/.github/assets/social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..063046e6a74bbc7595ccc26a43d415ce4e093761 GIT binary patch literal 18613 zcmeIacUY5Mvo{(nfC4r|Iw&gmP^BwX1jIs7dPfLNs`L^PP!y!ANN)m4@4ba6EmA{~ z5<-a7&_hjtK=R!@@7||;*Y};X_jAslZ?20BH}|#Hnl)?InprdRBjUNX2GeB(a?T@dIj@aw4%dRl3Lm4mBwW@RE61bTe;iJFSOKg~MUti*tn zA+W#Du@EZu`p3-TsZj7K#&17ZJ7pxRmZLNar+k|n9tx&@;Vvv5*5%>DXMb;*zrnF^ zLo6W5;C90ASL%ZKeBU4Pbj1pvbuc{(+q|t;=W$;4`K8e8ev!q+i60$v(+DPv(tRa| zbsuaJ^&p7vUAs~Rv8kNucTAyDr7yZSl0z8*UO|tC1td=Bb(2#MPUz!g(4`Z4g&%YV zAR+J0foK4F-TKr6fc*RQzs2%zb@=x-`1k4X?^E&rY7Kl{X&L*$7q#qt6b||tU6QFv zz}vfr`k+$)eb9C$1R$V~cWJJl&|8`y`V)GN`G5U-ZIY2K)xcSH9tNA4D6f{ghTVj1 z;CGCUo^0UJk|+nD=?{NBn*YZ>{x?HZIP*+@qiLV8R{ej`)kTBjDQ-Pd-Q)L3%1viQ{7q zKD%Zx3t*(ICX7JucD)Yb7_x}fu?I$cpu`dakpHr%{&Skmi!&mA!5@EqI2@C$n}<=b z1mN34>&CSv(%D6@%-hv3ke;oN!Q2yy! zN8ews4CnV!w(@Q#H)dr8km4J&5I$?NjagJrRKE##)V1K~XJdl?Soko$%}UD2hrvoI;Vgalqhr&;QejGkW$}Z3#4H1(V1qJPfwDTRDY7 zkTTXydJIdkAIS$`^r{KB&JlKc3dKw9=_-kZ;ex03)Z#yR4aTIuL&{eZ%;Mv z)c@UQTRz1I^6pP-kTI*ZQK@rUc3w&J}kLyw7T5-liOEYf<;A{WHM5V>saSUK#Fa2v&TN zVT4rln;vEYMeUE27IUsQ0q=vFHCv- z*r$;U@w>LlU<9KBvC#o*RdDBRtAP-!cU!0qjBQtB=?LwT;O;yw%wY;*yTBDBk1@BY zijk898Jz=VzY;&a*CZ|LheFX)dknu5yS|&(+AN~xxbCCx=f`CQ%F2802FY@9E#AKX zy2}YnSby_Zo%Hv%n%8Cm(f*>GnN=2nVwPn*pu|F{^p#;d7K7g-49BxaE}pvSDIEyj z-YBb~b;aF>Kie}NY^t3JMGlOf9|5jffaJ!XA-VZLBkG;FN$CZF(GN~P=^4XVXunvv zWr%}NmJR75>A@C-2xjYuukQpGwan98SI)pz$Ao(f{n{F4U`cTge^#u%&qaG>SOGV> zTUeTq&traVh$0p@aZWt)*_cm1q^PcXi<|qAb6mL0i|#kSiiY^^PaL#iR#=;H1=6c`y)@E8#cA;s&4<@~ zwtvgBgML&Lg3g3oSuxzy(lk#K;S6Q>Ok;~8EN9SFSL4MTjuUtE@%Rf|3h^q+FZM{I zV(vU?n_>@L=S)w5avz+%4*K$%3a_{KDK!;G$UmCC5*7+BmQC|rZr`mlQr_#N^Q?d61trU$2?0GH%!`St<`+)WJxA9k z+J?|TR8;QXXHM{Iwp2*vzPImd2%H;;RZ8G;LVcBikU+HtkGbCA*^u)OKri*_K{Q{# z8VK=M^Q*D8@7LSpM8ELaczfjaj4E*LQ+ii%BYXJ(AvXy!ODl|={E!X7T=;O z0XehXKJ@^!1m5d8a)RH~K>2Z!!{aP}^%(n+``I@?(PMHC%M0!iXt^oxp>)9*l0$5k z4B!^sl>_EBh{SLFDt{EXx2K22fi)2%QC5N+M$DKiFG>)^{#FCAiEdNoWQHl+f43=S zz9QUgCHvB#2K3|3Wq{k*g2$%Q4#HKZ!>1`rh>NWmEVX4i^|RJZwu}#Gh3&^hB!{&7 zi1K}Ib;tJmqi5Ov#ptig*=m``bSQ73Pl2&qLeotCHnWp1qmkW=i%s;Cz0qXW8PiW5 z`;))R+X!p#djT~sXpp)2>cmIl%p)AR$_)Eb<^kui4!TTn`GQtD;DOvxZU|VNaIcbs zH6r(4=YF+%P)``-H9YE^cp0bQ4>8=wS=~oqeEff#>(l%KsSjG(>!#;tDt?Ipj!2r2 z7kr>IAtogo?}7s?uH?R`D*cHxTMN{PlCJMhDySKwS1xCE7ipQ0)V zPkcHkX-h4AsfWk;E2YoU!Cj{IY`|*Yjnd*|#lu<&gJ^cD!l}p{nmPi2BlW96FI#T1wlubtFQsljBL6tZ284&)fPI@ZMvAzG=Tr&F{~@7QnD;`HKd&L=kEw$L)sD)%!A1}8@6KV zyG@@pzA9h>6!xZ|r9Z*1l6ysk+#yI3U@u8m5B&mXpe3X`ZiFZ!t6xkI2r93hcdWGW z06e~}pf~P3NXkl?$Hv1p=f=-tl8*PEzautrkZ0(Mm+<&lGqAI7hqI_vhe0>OMr1|IBiW&E9^ zu#Rsm;(G>Ip5LUWng8lJU9bh;V^L3GEk(b2Uy62%cY&8ClNVb33wBzazr3(|;PRjG zfNtjTPCEJVT)y7e9lk{QU+WfX>CKl97v3iY?5LIDi$YJFWOv zS*R;E{vjvn8=sB*lox(`>QD2BWz=POk_2kwFvi;0F$Oqs>?>ee6t?KCuQFzitXN}Q z^AYUC=ip(?^^kF*`P1mN&?IJfuGqfH9fY}2#K;r$XXLwm`ntfwFZ%}H-&T&>RU4^X zW-6{qICDdgZ(A*Q`HhH>(AmuF0l5MGQ!^45l9FxnU77WWI$~1yF|R&6$|bo(NrJ|) zagr(H&>0Uqs?2CXCJ%+gz+fNG>h#<71JaLtR40vnz0}POc~-h}H%T#G#f5O`r&Wee z>>fOqIVgrqEaPi!znMW8oNwezRq{(~63Do>=eB{*_1Edq{EP=i`1=NTSQN0RLo62ibWS3-T~JYVXXJdgQ=#nYn=My z=!r#-qq1gGk>Nzg=jE2-%H+x={wP`*hD_IPI`(NGpIp zH%KQ{D`>nb-oW5*@1aH=@Fz#qPG?&^uF2QQz0Faoe)@--?8gBN@dX<`6#fjysu_h*c*daTY?F@f+ksFMgBKRML`ckV zG&(eW{$`OOZ@{MH>H9EMuK3{Tb6-~U$27HNyv%h74=3!CudvwQ2dpyp?m4gCeyEvv z2}9=1oVL3E#mNbxQ?B3yfgqzkqsJQ8*Da(%N^T0yA@+Y!hxeuL=}fKKe0W>*X5wx7 z3{y{X;i=bO2u~#0JEGbPZPJ!0&(f4W(SU-l)BZ*=V~-DgP!oQe^(KXOWv}Xs@=H7| zs#DM1o($ZKsV5E%a_ReD$uT2^W;`;!taUa-PslH4h-Z$dSO*0=Goj>VM3)W43=Qf& zyOzmB&+Z@3wy)9!9ud{-`j1(P^`b7k`REWBa>=^K3L4;5oS+{}`8COo{1xTAYb4+6 zCP}|f!nlbkMD%*kHNhRs@PINZubba2b|di3c8-8C%JPGoPW-BqrmDqd(>$TiVOcj7xW-M_ktv}8gq8zwpEyrSh*A+-b_>}0v zn~LW5gS{%P^@;ng?PJ9>FH@fW$a}b6IR0+pLZ#xQ%ut5yY@G`dMe?Cizc#rO6S>8N zA`LH+YHHzhLkk{xv$m*ZPIdPA#LWj!n;FRQo<&!`xxbnO+bD84GP z+&9{l=T!=9l~>(DGbAZ1#Le!T*6sJOMXG0=?LVW5IWc3MD=hI)-hJZLHHoY75?7&1 zQFI-Sjxpf(dISivgDy#w+Uogo%$s#7XXZ%|iPZ`w1X)L9W!9QGNPXiQ6q4U3jcKbA zyR#PPLSm%rixs#p-Z=5kMIWM?lCUeC8;_G_Qh5LK-`mdLIR@gp>c`q;xiNR=-9*YcIsRt&QLF%Qbp9>Q!$PqZI8CHs{Zw z{~E`fjZyT&>O!DVVZmapK?;zK&fMzQv*gK9++0iK`e1o@_Z=;7_0+%R0l39p%3^?v zir*Y!$awT1n|EEQ2Jk^f9!Gl^)?IN&j*yj!n`Yk+v%6FDAd&{e5yA`{Z!4f55QzV| zfjMx!IF-m^@Xh0Zq>RB}sWVSIXPB@A%etSe7R8Ca52I9~RPb5Yy)@mKz3qWYOT*}X z8KbL;Fx9>z_82TWcIKWhBtG9|vf&ow&$OA)`*SbW1HO4_3F&5ExiJrTvI!f(I!rfu zX_v$;jlEBEKO*7jFVD(f%wP4PveM~&uYeQa&H;W0a~1HNUCXwsmw)0m295>XX-WRm zA9k7t8ac(vXW9Oeo1WQ)3^(bB^^KJt=r7wLZH3w!1h7Mm0*a)zv;?byF3M_s*_JzX z7f<#iVfDAx_D2S)brBA^&rYZ6M>akK4m>?I<9G)vya@Eg<--=ggX1=^WM{HQ?j=wn z)G_lf|B2(aAve`B&9i!X)rD@cVY+W8*3iENB!RVrfbOm zV82tj_0#dn=&UMTOC3qykD8=d7pR0-C$1rm_G=$1%h#sXu|7;>8YKI;t{V_|4tVkM zz5b;39miLGZ&RFZ80(zD1n{*i`;yb@){=v62u`dB%Ug1NDW%VP1wppPI<@9Rx)AQ6 z=1i}=335--D)B;yt2kh$J(!}_rI*$f<1G`6E;nZ?PeKp$_0yXxb(C=#=Z+RjO4tZ@ z`OW^Sij~C1TdtTpP*%ibk~o~J1{D7qKolADUbgJQVXdqmW=w>umm$PQJcl;ji~MCG z=Uns7W9X@QI)P`jfJp5RgUeidkO^Tb3Rc%IB?PILVMAK^B4VwcE%W=3J)xG_ znd6_QXjC)Myf@E8(;9DWarY9&3$FPCw>BrgjL2XCqH4*iCXMrviPT1!)aLYx?_P-n zaco69G*1&`?0bY5U)c3gxVImw?1QQct6bnyhk%%nbC6)O;rXz7l>k z{?;VHktFZOy+H{wv1<;9X=D48>qx%YX-_VNFd|ziLnun4Zm5@Yzc@cQgi^%!A@Up( z?Dv5|&EewwGR|jw51u-nWbB)+BR*}H;udU>1b6A)GhwEM!&ggocI_^DLUhI$g~79* z`F?_<_l#~IrL8Pygg4EdO=Pinv#J1YF`k(oWF~#{fAwN9^Y^NZ*@9(5#cUvP_3V`* z7jmI?dS<|9Wl4}E{iz3_UuEy4R>|HfMcbQZ#GlelQ5VeOnLnk=8y&r=+nA6|W6*Ev zIPHt=GCHx--(fKH=k2-c>W`Tv&nL35=md|vvQ1d#kQ*&yjZM4|)o@Z%R;06ZEZR)DV=)guL-hx$aanVXsW>{8e}v$VJ(i{>snTwh z0DMeN%bBJ^ZH z!jiGS&0oy#GihPVAlQM8spK&MaBQ@`ot>$%!z-BXeRwWi}Oi(WvD^@l27 zr7abTkHF!5$2>(6v@d5j$m3K|(oTkQ0Pvj@i|6HY(B|!(tXY3Xa_FJJi_ zpGynr~7|{k<1T5C2f?^Tl<&OG^Enu^lhx=L)o0QG9cJc{8J}Z*j^wCFE=2Y+_@3I=eF4C!o*Y-V zuXk%p5Di%Z`0DipQH3lVN%mSP3>f*Mu1L}RSnzfbrT#J+c6W?{ACaI-tL$|jtptY33j z4)EI18vFCO*R<9XCgawleg63(mwOJ(Hr)FL1wV`M{HA5C-8mR)~B$_BeA%?V?DPH5C8j!-3}*{sCe zVszWRkWj;XjK|PQ;W1OVfTZG&{BN4zVtr8ZzORroHZ_gGD09vI28hw%;X4fNbBj^$ zm%4#AIs8afk;XOtaGN_t%RM_)t5fr8%63W6y0%I~+qFNLP?58ru}YnUUypiWCJg@z^Yr-Z|h^jyCp9As&ig-Wq(AP zlj{|hyYcf=ZokiX#7EzQWSN{uIisAM*KF46f@3TSI54Md0HY4eczqQ(PyMw2bjN85*MRWd_6Rr)%=x(9NxbcTJ43PA+#I%KWM zBnGNz9QmCIw&UH$aXwfY^adAef^9EldlZ4eWfpoR^3xG|>u2Z{4Z1X=Dn-O%O-7$G z)*xQPDz~ns87@wy_V~Y4A8$<9tn|7la+s6%^sf2tf?f$G;u@-+-G!N5FrFeVk}sYF>Zt{hU0PZ*~Fn%rdtP zh&a`7xG=8X{&k0~%l~D&0%FqGH--EZEv`Rz_QlYTmi5h6*}lgq=Ok#w#SKQpn0xiT z4VQ=Egg@>;#I!|GNXSwR1|(<(c7EB`kq>0?yFO7v0-!T52O`7k`k~W*kfG$ZgPkTs z&rx%>k&2<+*a+JdNLJDFu$td<|B1! z3NiBuTX=#KZ=3E(tW^ZCVOPRm9Aihih?$NaZP^RA`BynQDzCOje<}Q9aW8~yJ+i7O zUXHy%mvde!>|uc%WOtD%su|HV8UoQdcZ&VViH?@=je=j?CoU10&|mku#-CR9&S@5v z;ZFi@bJzF8w?z|+Y6`E}s@M15G%;^i{3bSHY*JhXNY8+L839 z*riYX=zszVI?_QzBb0vasM`yD*OfecjJ{J1T?yDuQ34k$j1Z2#xvC=x?1_M|f}cs! z#ij}-2)wX1@h1MZc7hz`*L^9hV^g~)Egr_Ky{nfeSnI;tDVP&kpb1Jo)SPISiXMC^ zsVJ7P`7B$={lcaB z%k4Ez3y#4EYoU>|&dIRK)z@QnzC{j^;qrEEg+&SMy-Cp;wGQmLGV!~OpKr|F8#rbD zyR)Nc<`K5Rm0*40FY)*)v6M+Azi=!hdw?xfXI&vV!`1OhrsbvmJ*xlsFNC+f+venj zko(Ki@<|T48?j7L)hB_H{<8*6hg#a#+(XuvTi)Py4wqd9bDY<@Y4oWvW=308;QsgD z!Nb_*0zq(So$GHw1F;L@^qhsKrGRd5_n! zs!xK_U4iVo{O2R?ZUXTh9|n6zz##WMadxNb%dE`OK!G$S-Si#a#RfAw%>gmWOCAFU zjo8dyM-B8=wT%pN^_d}}Guhy;m?#r_n{1WFdo~FUNns7;dYl)_KX`#X*WFDM)-8x< zA7N(A3%6~)i>Q`^O74f*r!#1UhunDk(tJHLEx3qXM~gJdrmS99|veBi}j z;-OXq#2jhb-(f4nOvZoN_jJG}5lB~JBF~~<=g+ZQ*fl-3%-S@zv!0?gSN2%J3K!pP z^zCb553NC|hbEtGbm_Ff{M@Cq9o+h|w7we2vLGywIf<-_l`qC#IR75Wdw% z+8qc*M+`hGCKH-#htBs}O8*(KaJLnMdn$ygyxu$Ya=@fHkGkfjLs{D!Yl?Q8u4vdi zb4&d4~KD(f1H0LeJSq2OG`Xk6s?6=a;EufY&exWrr9I? zTvJx{IisRl53N*L_nLB5AAaou_}Vo~o2&4R`r}h}Ga+5%HD8G9R+B~7-C|=5o9fQ@ zq&Nri#msJ=26sC=dl|Z0q0SXvih1@^^C#omd~49+7a&x(3k}5({XKy77n45i(Z_{f z-$W+7suAI=L>s2b^mQ2~yguw$_7jXTVtM25ox)Ko`uU=}S$rvKxeV7~tCV~1)vv~# zg)Z2)l~tT^Ws0TJm1&=}a?3HxFtSjVzNETXx{E1#wKnot^Z;Wl%8=$RYWU70}= zK$_wkmUM(^^$zY@3xh+~f+s5qf23ic;RCj=lfg?pX7f2?I9N64HLV@T-OHJM@1OQq z7Yt8CcES2$&H3pG=-=nIG)h0!2s?z$qQlNN7<*22yuZl~s>7)JC0k&^14@&l#tS_r zr|nL+tGp-Kz3pPo$CN(iSxk;~<$YGZt~h$kLdxL}{XtKYD@XZ}T`%bv_2dC4S#tJ9 z%i}+rrVOW*bXY8Ca6&_)MdM7#%KF3`$_wXib-e-|XD(?QbVB_^QIDRO8*OuhRQvde zVir7JY5$t|QWeixV-aEE$B#1Y<+1mhxFOQK<}$6tQNM1n$fH#71li*)UM|Pje(#R_ zUj_!3Pf_|WQvZUiphIJPs>2{d(-iN`;T2eMvA06 zizc|#oEXeUJJZF+u9XOz1l8z-8mCTM8Novfqu4Areh`=1hv)X5p(++a_#A7U71dz7 zCSjzs^QCHd;<-&s8OTL-=xL7%;*zrjeKdH%%WwL#irL?Tl5h}bTvosqkRVh6E*&m~ zS*#$KIeOC??m7`!WUYSYv3Q~`iy6V}Q%oeR{d}K{w&fXmJNrg%wGS1qVO#8G$lA9B zj*lgNJ2gakiGjH6mrU%elHk;<0W>BWT;u9U{TQ$My(bUCCeQlcL+XmrPg!_O#?m0M|0Gnq3`RqT5@7JC1@ zL5O-7%RP@nI9i#r_L8;b)(#j4>MC@~6|zD{ID}b0w_u~IoXUB#dRG-CxC(8ZKXdO{ zQVr&P@XXuU8R#gh*j&!a#J3kT+;fehvMUj|Y3E?SkfWHeWI zqj=%sR!>4fmqPAm|57#Y8;~!kAA>)+6dAda^#xf`ykgr8QXfxU9A$qEMXd@vd*7f3 zg`MeoI%)n@_at>&J^_iW7}k(qAaPEd&y(cCMU@-$V_xv|%kPWp1}E&xBAH2v)^MISi>l zo$vL4)v+n_0y5zfjbBv6O1{L#M8&sDqHZY?pHup6hM10d9**H* zhZzWL(rD%Xd6zq`J({CNa1(5!!}ypMReY)I5wsmZTEC*@<#@*QTE0eXEtLo}@2L9# z`rg-Id6`3f@B8{hbQ8-n4;}>|$cC^W6GoBnHP+R0Nw4_>3Ws{4c7T-{kVnxs|aBD9-At(u&_h$qc;p{ zT1+I~4KwY}6?xx?8T@q})9+}rNlCI)vUL8ji>!0!TA~E~X-#;~F(sf)BIL9JHBu(* zu390ww+0!TExB;#`RrwpquQD(xITgy#S!*RA5EP!G1T_OZ^-7FjF$ zm%ed;3^N|*ln&mZ1qavc5GeR^Xj$#nr0!Lw-&T}4P7{MrdK$ofYN8iuNL6em$GD`kz-j9|O4Hef=T+6mzsGdjg$1D4e-lN`esYpFQGgAU{=T&5 zn2w}yenAhs!5A|7KAMJx_r$m|+5vZ#$A&|6a~_<|PRC-=QFy%35(I_6V z-o!7;*BqGRpRJV*Jzrl(k)OTuR_~;UU|x&K)tPv|QG&Eisfmgw+A-7Y00#tv0Trm& zaJ)I*^L_`I*hd~TtSql#E{Mmjp>aPMCg%IHAeuVv$vltwrGv!LiCE+nc?ttmHKpe3&!kZ3F@Yd&Cl^{F*j6rgzpX+ysHhn{#DDKhW7gXp|2v_FBJ^D zi=l4x7PcFW&H;w%<;`I4)xWmwgS{d?zBI|7xq7k5hmHY(FS7$eDqS)`Kv|m!H&D-G z;gkqZQM<&3cvwO`U|?0Ax=^WABz0}P%tYT&;=^*!8Eviibq0ypu96xZg2L}(#fM`> zvs@7&!W@(23mM&(7)a43>_eC7nc#~qCMHgasKTBB7gOKFUzx^8<8g`ca$^MDhS>{8 zlOZ_@b~XZmfqOch|MZ_<>vhCqC((SHwGE$x*anW*W*UWOT?J@ zrW6(O*ZZ-}2O{t5+VSs{V!Pih+BIhdSO5NYQ9a9Jc6x6fMU=UA2kYgqg-^&MFt~~} zTZz5fkQ`@~v8QhCQihqmI}WIhcmlDwCieLIVO$;56We1(DUZJIyfb+e8MR7X3N48Z zJ_-&_BOhc@(qh=FWbHad!1Df+}uxe zC4#ObX7!rGMN07~8k-hLr=wVGB)SxfBoR}h&;%TnS}oJ*cRaTsYZrI4oa)lQ^4`Q? zi%??a7)8S8)1q8r9W+gl8RF3OmFM)XpzhW!(Xyg**t4;}r|K0jmauRp}B)hB>uxP5B7j z^l&_r{zB^cOF3yr_-lu8aH(yLb`KQqRAO%` z2ni9}bFKDWO6O$DtdTlU?~O+dJSwW*8e)MWj(kT^==Vv!i2<0N11zpM5*!$Kdt)G2 zVXE|SJ)bkx`)x%LMzTmF-wnAc--`q4;@n6Zg?O*gRre3a{=PlLIIopac)oqV z8J-^n(MfOaP0}y_wE+#E4j3<$BLu~bVjUuER!14A+L}}fAiApDEn8ig^iU(Q($YyVW-EXaZG`e zNE6B?dNeQ0Bt)SJbowsQu++sjtj+-1R_vI5^&BX71-ujD@Fpg_f1d*HvdZ{cX>?$y zc1Eg_w}>`a5l&DZRqOV+GN*Dxrwpt0RV|5Sm8Wr0=wr=TXeJ?gy@%&#REIW3kIm6>!TS!EANO|=%N+97;e?me!D@jGMYvb} z3fv)&@cdDFHFfa5-|D;InHg7S!S$$Rd!QI*-OJ+DO6FDM)-L#9wlgJeuDjcFbh^^A z5}G>ks7;x+`_^?(G(1n>!BYN`ONMKojfuWOdff{N{>;)O9-Eel>7{NK^_CL>RT> zH=67mF%XshC*M4ipoef>WgG(y9h7iR+yn)r1x?pC#iSH(^yv#61|jyGuQ443*mzR@ zSc!H*`PxipctgLPx)f4*%|aw{fN}gwPAFN&JZak1H;<0=eh1?m)L++^lT)no?)k+j zh;#8M82bZ%AX{w(H+3D{kvSa-W15g@M=tS9WKh$p%!cXk5~P)l9L??na}3~rG{3TP+Tu-;P4&(_f9)X z=C%-&vqvzAAr+|lDrz8g$Z&Qvnvp1y@l`AycDu!~ZqkDp3;s?!Y^hJCglzm7B`Fe) zryhX1Cfm-ghv`WEWjZS5ZW&mQP8oyRSTx0v=caVDL%h4A z!i+|LK*z;H14EPahrTcSb_o`bjjiq3mwjlM;s`GKSX@ z_w)nz>gH^(`>0%)Lsd=Z2I-ii-*uWbQfdNoUT3=v-Pi)h1itaivA=DB5fh%2^TV_X z>=iG$NJgivXVwt@pk3D2vz(yG5%d&agn!LY68L!-aO4xyvc6=+THUX>1_#NM!$CB|HHhT(f#!{##NUv>{-bxsV z-2iY$w5h#*{Ld9x){^oZ}V3EUHw9ezx& zIcqc$Q+845R~4((eaZ}R1&R_xdbxALu0{tBQVE*c-bp^hw(l3?hBmh4snoSmG}8{z zf{T|~FZNR%5$j@e9}eX(EKOfq8$ZCBuz|bQ1w*%VloM~#H%MT>2dhux16SEG_uj5K z7KpA(jYYjvuG9fTFYv+#nJAN%Ny+^_xa?}|@krW@>a{(Q-PrQN@f;XVF?P9-T;ZpQ z^r`pOtU5+H1}b1r)Xd*~~Yn+I5SuUDj*G<=SHg^M_Yg zuh1BzH;4LfZCW~*G3{ht71PPb#m{m~L4BJ7b$ZNT8Ia*!NO#qS=C7S+*k`lkE>bjm z#vDXe{MH$%g%f*>r3&9N`4>JXhjY7_cAzB;in`1so@%{lr_1x3dZh8k6;3R!)(!8);3k0Maq(f=VCp6uZ1?yZBHzzkL z&KkS?!Ukd_i-F>&Mj_fgq)c@5_LkJ1rNo}8ytFqD$>GNE2{Pb{=XcZ9W0#MUYm4_E z5B+KIciND)!9Sdn;IREmw#SCoFs0lX<4gxLP~ zpxG0(>|T@csPx{IeE=l3dk_IPNjt$3q3=Qo@)$|`q(e%84H7^ffI!i5{}562FBqE2 zvw?J_M5Yk{9#$n6c6@vSUjlp|AYWffIj)N#Qwqt)050g|rGE&WI$8Q-6%IsHf9uTDJx9{$V!9>DiM`o3`hsG@EA?!WMg{|A6{3WWj`hjxTYX5sM`oH(sKY{T7 gTWbG*NR1-!13xQ=JvGg6vO}M!Ypaz#eEIf&0E9TIXaE2J literal 0 HcmV?d00001 diff --git a/branding/LICENSE b/branding/LICENSE index ffa278f..aa873da 100644 --- a/branding/LICENSE +++ b/branding/LICENSE @@ -4,8 +4,8 @@ Copyright (c) 2025-2026 Lazy Alien Server. All rights reserved. The AlienCommons name, logo mark, wordmark, logo lockups, social-preview images, and other visual branding assets contained in this directory or in -`.github/assets/logo-lockup.png` are not licensed under the MIT License that -applies to the repository's source code. +`.github/assets/` are not licensed under the MIT License that applies to the +repository's source code. Permission is granted to copy and display these assets, without modification, for the following purposes: diff --git a/branding/README.md b/branding/README.md index 157e4d3..ba93c97 100644 --- a/branding/README.md +++ b/branding/README.md @@ -31,9 +31,10 @@ branding/ ``` GitHub-specific presentation assets live separately in `.github/assets/`. -The current `logo-lockup.png` is a 1280 × 640 horizontal brand card combining -the logo mark with an Alegreya Medium wordmark. It is used at the beginning of -the repository READMEs and can also be uploaded as the repository social preview. +`logo-lockup.png` is a compact 1280 × 448 horizontal brand card combining the +logo mark with an Alegreya Medium wordmark. It is used at the beginning of the +repository READMEs. `social-preview.png` preserves the 1280 × 640 (2:1) layout +for use as the repository social preview on GitHub. Brand assets are covered by the separate terms in [`LICENSE`](LICENSE), not by the repository's MIT License.