From 2378f9d4e9d800fb768ec219dbec7fe4626d4a68 Mon Sep 17 00:00:00 2001 From: koehr Date: Sun, 10 Mar 2024 23:06:15 +0100 Subject: [PATCH] header split and links to k0r.386 and local version --- dist/down.svg | 5 +++ dist/index.html | 48 +++++++++++++++++++--------- dist/rubik-regular-minimal.woff2 | Bin 0 -> 21552 bytes dist/style.css | 49 ++++++++++++++++++++++++----- dist/term.svg | 4 +++ index.md | 10 ++++-- layouts/index.html | 40 ++++++++++++++++------- static/down.svg | 5 +++ static/rubik-regular-minimal.woff2 | Bin 0 -> 21552 bytes static/style.css | 49 ++++++++++++++++++++++++----- static/term.svg | 4 +++ 11 files changed, 172 insertions(+), 42 deletions(-) create mode 100644 dist/down.svg create mode 100644 dist/rubik-regular-minimal.woff2 create mode 100644 dist/term.svg create mode 100644 static/down.svg create mode 100644 static/rubik-regular-minimal.woff2 create mode 100644 static/term.svg diff --git a/dist/down.svg b/dist/down.svg new file mode 100644 index 0000000..f36759d --- /dev/null +++ b/dist/down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index d48be67..8cafd57 100644 --- a/dist/index.html +++ b/dist/index.html @@ -30,7 +30,7 @@ -
+
Homepage of
Norman @@ -39,20 +39,40 @@ Code Artist
-
-

introduction

-

Hi there! I'm a programmer, OpenSource enthusiast and hacker, based in Berlin.

-

I call myself a code artist, because programming can and should be seen as a creative process; therefore code is art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability and architecture.

+
+

+ Hi there! I am a + programmer, + open-source + enthusiast + and + hacker + based in Berlin, Germany. +

+

+ I call myself a code artist, because programming can and should be seen as a creative process; therefore code is + art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability + and architecture. +

+ +
-
diff --git a/dist/rubik-regular-minimal.woff2 b/dist/rubik-regular-minimal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..84bad9562df301030d0e40d789b357ef8a0298eb GIT binary patch literal 21552 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 { + .light\:invert { filter: invert(); } } @@ -31,7 +39,8 @@ body { background: var(--page-bg-color); color: var(--page-fg-color); font-size: 20px; - font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + font-family: 'rubikregular', sans-serif; + scroll-behavior: smooth; } body>header { @@ -40,6 +49,18 @@ body>header { color: transparent; } +a { + color: var(--page-fg-color); +} + +#intro { + display: flex; + flex-flow: column nowrap; + justify-content: center; + height: calc(100vh - 420px); + margin: 2rem 0; +} + #content>h1 { font-size: 2rem; font-variant: small-caps; @@ -51,20 +72,34 @@ body>header { justify-content: space-between; align-items: center; gap: 1rem; - margin: 3rem 0 0 0; - text-align: center; } #menu>a { + padding: 2rem .5rem 0; display: flex; flex-flow: column nowrap; justify-content: center; - color: white; + align-items: center; + gap: 1rem; text-decoration: none; font-variant: small-caps; + font-size: 2rem; + text-align: center; + background-color: rgba(128, 128, 128, .1); + transition: background-color .3s ease; + border-radius: 12px; +} + +#menu>a:hover { + background-color: rgba(128, 128, 128, .2); } #menu>a>img { - max-width: 400px; - aspect-ratio: 400 / 281; + max-width: 200px; + opacity: .4; + transition: opacity .3s ease; +} + +#menu>a:hover>img { + opacity: .8; } \ No newline at end of file diff --git a/dist/term.svg b/dist/term.svg new file mode 100644 index 0000000..86fe98b --- /dev/null +++ b/dist/term.svg @@ -0,0 +1,4 @@ + + + + diff --git a/index.md b/index.md index 46c79cd..31b636c 100644 --- a/index.md +++ b/index.md @@ -1,5 +1,9 @@ -# introduction +# experience -Hi there! I'm a programmer, OpenSource enthusiast and hacker, based in Berlin. +Pretty early in my life I realized that I work best on my own terms. That does not mean that I prefer to work alone. Working with clients, team mates, designers and managers is a crucial part of any development process. -I call myself a code artist, because programming can and should be seen as a creative process; therefore code is art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability and architecture. +Some time in the year 2009 I decided to not only live up to my way of working but also share my experience even more. I decided to become a freelancing programmer and consultant. Since then many different places benefited from my work. Start-Ups in their first months as well as well known companies like HERE and Deutsche Telekom Labs. + +Together with entrepreneurs, UI/UX experts and engineers of many fields I created novel and beautiful applications that still influence the live of thousands of people. + +Please see my CV for a more detailed list. diff --git a/layouts/index.html b/layouts/index.html index 840dbe8..60c43de 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -30,7 +30,7 @@ -
+
Homepage of
Norman @@ -39,19 +39,37 @@ Code Artist
+
+

+ Hi there! I am a + programmer, + open-source + enthusiast + and + hacker + based in Berlin, Germany. +

+

+ I call myself a code artist, because programming can and should be seen as a creative process; therefore code is + art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability + and architecture. +

+ + +
@contents
-
diff --git a/static/down.svg b/static/down.svg new file mode 100644 index 0000000..f36759d --- /dev/null +++ b/static/down.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/static/rubik-regular-minimal.woff2 b/static/rubik-regular-minimal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..84bad9562df301030d0e40d789b357ef8a0298eb GIT binary patch literal 21552 zcmV(|K+(T7 zXa|fm3}su~32_A7wmniXNpDu^nG42WL;<_S$L&b2jd4>mQjlJp{r~@;n^Z!sq?3?$!}u zx?2%p1>ADT9LBaGPq!WQm$+iHW41QKu(NGOWIW&{l=$`^cW0qSCgroB?j%v*c7ynp z_wAT6PIi5fzsafjgq7U(DIRk@Ki{X*;9wyi+J&{Es&TrdM`ap5`H8##@^XOv_}5@))(EN{!F3#~0AlDPUMlQT1uYj>p6LcJR?{efR^^i8BXe<;Rq*$=_1}TpV$io;Xu}&HYz#)2C;oNK zW2;;zNj3;~qi`$NAXz5>OkE|b_7E;=0ZSqUkV+mKkWXFg=g5xWV!MZ2ao(}R1r2T`OtdAm^;EO1?j+w6_p;NkQ3pX}zN!3YA4?05CG zOD)@=o8Pa)jkk|qbUJabJ7y^s@DRjGpQSU>9w(D1=S$t^dq*m+%1S{I@JhQBt$65R z%->^t*~*f2Vzb(8BIauA_F}%@H6KTB-5Q}v#2{oRbXda(iN|%g-5&ZIJV6`akK_8S zzJ+#BfQ?5yd__Q(b!qm+~!Voi!1ykh=k+C*ov|82ARw`tkVw{{i| ztwUB2+nkT7-lXXBzWyK0pP8>O$sVI*8EC=hB}WT9niXQv6AB6rF-dP(GsgLkLA@`}83J;}px*b?5!1 zz8Vf>ES|nXQ@}<6CFi!MxfAo>C}9ae3n`D#U8R(eWu6g67-95{Fv5uJxDGk}r}gLb z7D}l^mXJwKXqUZvEZuf$o&G(qf(Hmz%9*7(>lD~MKnHlkD{C7?|Gw_n_TP*k0N>mk z+zkL9F4X=G@XP$X0|+n&U_U^SK&F9AHyvz-PLM8LU^C4E={6T^p0yzBtOHx`1jtFl zU}wDq!2${hU^XHtpdEJF;{bSAfN4wvkkd~*?<{yg0Rf9g2Lp;ZV-*;XEp`FT@G~r6 zO${b%H_wnuz7G{r$B~wFXL~N?`!dU|w7G5Ss;=*gD*PQo#~_#hW-?|i<}l`K%qz?* z%)gGX(Q{}p-Ar3eNHlg5U{RJRkw}0{C5X%P7(N^#BSnl#*%^P9irO!zYp%lM`kX+K zn3)`xT%j)w%_C)OlR}iaV3|!!5Qi+N;&BoZ02ogkx0E}HQ8-!G4IPt^7BegPf%}k} zP}@-?WshP51po>nH9C$hWpe1+805eK4B#l6AD3QckIr^0bXhQxNf;(5gl96w;H;vN zCvOSRP~n1bRoUb|AedHR77R2Zk)o~S?|4Sw68(`So*pufMupk8jv_Lj= z3sPvoy9mCRUPFQuB#r66D6G5CrY}8NNRy0|K?}P?ZLM?~3v{1}z5p7bF%tmMNZeE`l+}Uko4^JDXtcn^Lx5A$X8s20IM|g*s0RGrWei?tD#U*-3HZ>h0E(V}L zninKLY#C+qK#(B0Mg5aN1~kY41w6n2zys&Z&5o}}S7fwI9Pp!AQrJW?gUp+}r8VL#U7 zArtD=Gof)tJS6)!J|Dq12Otxw;ZGwU8%8qkM=l#{Cc8tmD6S=fbXDn}ySZ9vF4j{J zF#hr{jF+A#&0N!l7gj^AOk0<}NfyIks)SgAOdkd~J7B!DJSg_pgb2dVTmsh)F0(Nt z8MA!IiEJ3h%TIS3{Og0T33Z^>8iCCbN1O{S0x*ZB(`MPHdrnkJ=!nbGwB4Bq*r?;=NIjh?OK0MuSXsf_sDlo2Bx3P1dBiLH z`_GYHb?0GGxl9*z@H8IqdGVtq%jqJpd<+|wMPMOskq6eVcRpsgh8xxLo=-(!h`>Ti z)oRH+*=mg-(CU&-Ekxx18Y)^54MzffBLqa31yaQzJV_1J@?1ZZk|nuV^*TT(bMPDu zv~xuWv)@}-TV*gV7H&udEUG~Zlj@h;p(5&vX%*rRCRUB(w;ta3meQsye+;<;nyLlh zuO}O)pC({b#%1ADhY2A&pC&n|ik~@SXo3hv<_kt#fho^TOV_M%Gvm@$%?R+LBByKj zm-ay2JgPNX9PWISyw;_J;m1-osJxo#H2e@qz+lZYEi#>mG`a@#%TEDI$iTTWrlX#d zT#D3avSB^MvDj{o_VrHM&k0hmLB}-fEPb*Brh0Toxp+lgOH+P%Dj6Gx^lsMl^C*yE z3psVFDq#865h`8HM1tSd;c`nA$E1IxOCjT+CYz^qi7i+Yk~4%Tx=mONLgm2Lu7zX z2RFA7+q|POCZSD8yVkM>W@V7iNsdL)B(wq!=pWaqNFxs>X^YYfw!qLOco5K@PNkpi*;RT-68 zX=pLQ;FgFwwnXx0kq!Q6H*GQJ&}M-}bpUB_mXh6cSP@Q;MCp{YrM3i1?RAaHAt6+R z-8CxvCn>AYx*0N0k$zpng2CLnpHm^@1TA_RgS|45XQ#aM(9l3MAwwP~yh$GhI9Z|$ zyxyVSdG4)+Opl6IUce>e}!R@X~B1%cdkvV8ZQ%|ZNsc}gR0Rb}hn+S(Xm)vr1KwShCsL1*oJY)tJ8Mw~ zNO2Ojc0vA^NGB#nB_}Lv!c?e!+gA0!ry1gcJi>GS_HkmSn7?IaI8Ne2FLZ) zjb#Qve&H*LV6({4F?#Uf5ZS9Q{cHXo;UF|ECcAi*G?`TSD#9tQ)hsKH}Ml z>?02=puqyZ-Yxn;Re;AkZw}6qx_$d&MNw1&Hi4QHdMKBy!%GY@762U>avp;uBV)Y1F-okk6HU=5=*cG!d8F+bZA4H^sQRzgK?|aBCiFGxXDZF5^U)+)S^mBGBQy-`ojX$E#00ew6ZLN zsF*$j!MAjID!MIcpWAPt%~v+6bk$L0?Q54DbK?1rk&I@N25h8ehS&!APnhJ^ z6UfhtHUMj}VgsOw2mq3z8ONEP43IimUX)e0*PHeS@bnBv!*M;C&gP5dO2P1rd9&T^ zudYuA0Dzm@!{N9+-Q7Q&o?g6s^;#X=uEBc%KAoGLayWgvxjLTK0Oi%Npk?s_yHS{r z55pY6HNAzP-|~QvMK3=R!P*!n>9lYI{rmLPRH=~u5LvHMnU`Zbrj?t4?1#jeyO|T< zrgvGR7VG*++q3X0d_8^@!jdo|#sC+a_U`NEsL2|s93R!=EDW_!4kJo8=q^(NJZ;y9 z?&kmlpm!Hnfk= z|B7u|2t}q1uKqvH%~p#P6-qOB%Wo%p_4YJ=`HfYsHfs^mrcJJ?x<$+}SGi@@sIbmD zbvD?j-bp7lI_%|uVVG#R|i6|lh4#Lsif0E!}!A;AxZ zT5V;dwgWMkDRxSo+A=d{ z3qWVdY50!KuKr!H44_B zS;i|L-FPYW*(PcCk{wS2LyaD#x`zpl$qkU305>*4qFn)WIOEx?xcvZrz`o z;)qI>ST!S!;x!kSZjKSRAB{S+Xf)iDtU?mRs-C7h%^m~_^jxC2&n%g2N!?GpNxnp5 z9jI^LrghrYDz>!ht3sl%euMOzZ{GULbKk4-luh@)tFE}~U;nt0|NNad-qePu)=%%9 zyw~)7pCBu7Qk|!wm{wZvSS8YuA|?}#iENd2oasrRyBB#cO%Smm7?z+Lb!-Kk$4u(cMG)F?OTQAGTwfiezXei^`k{r0kKD~ zMGsRw6}1erV2U!q>w7Ikpu9Dp<}U89`w>pH0rV}3FB{5R9y4XWnlt^ITsJ|hpS}D`yDq;LF5nQ7A zL&4%~NL>&g8huI*gWV?PmL1YK#$$={Qz&-ps2Zi=*qKP_maT9K!>`bRc6ImnBL;|v)5vPVDk)X1T3t=Oi;|t-{MicMqV;`wmE|o<{A$pyF{$?o$Q@Zrm}t?2n}j9e zu%|tRKVQk0qk*cJitKBb!z>x>>uLeZ8OvIX0T#6MC)kN9M$)>>RJt9`DWtJEn#*C35J?Q?uRJkF_HYrT+CAdZlKhxOF;OaugG0p~;=}cO;j@HSoxqmJ4$5t6^C19n9A;(rw*!4r zq4t!j-ZR|V8m``gO!j1ATQLN0i1qa9w?wU~n+bAS5^xSaf8}JC2YDMHakl@v0HDAewrUEVCTh3b2(hR)h7!*nnsw zlC!8Tpt*!@q>QfoXr3Xa=U84~dihykQk+pug^abq9B3#7T@r>A%%)+ z)ie!xw9zLi>S?UPrr?iy8f#FBbxlbn+UcFcnqbM^LuQw2fh0#4V|2#|BL74r6mJNH zFar}Sb{RERYcUlM43F+gtE|>rfv$V`II&0Rfn`eD7n{&2#vklMo z{p{@7Q)Ukwk7o8fkTBW$xYNvmXo^eCoZ5J|nM-7E{~l;DHvltil&_l#(6iaO7q2}nq5G-7BjtWt=&$#1|kIz5ayXx%d3Dei~%qk zN@vxY$iE{IDOu%+YSL+memflpL4jGDg%+UbS8cfebxj~==2fCWyI!ko2N40YKEWwP zSXV75A6GmnBex=TrdwzQhya*JE_o>g$VN7%#|;Oi=TxA^R6QVkU>-TdIP!6fECkKt ziKNJKg`QzD2$zIxP1=DQHM`@{ICt|kks((V2$G;R2_+#hvMc!fSbSOzA+<F!4OJqOm0S_F#2Ir#}GMPAk=``0F=5H_hS^oKjYSd zT4BL7Nc!av>8Otg3{bF~9hh9oAppCtyQevRO(8Ip^c;(kv+u}USZYQYau(xZ-Z}Ec z(K5>tP_!5i*(eY%xhXwIAtkEsi4XsQC4!T}&Mj9|jkd+gSP>LHWADnn@|3GHQRm%! z+^7^G+kX!hsL)`tnHJuSW2lrPGUe~}Dov*9*6Z!NJ|090X~LHcEL7O;0Rw0CxhEh= za4pnw4DL@R5wf5B>GMo_*p&q=vXgPXEb z-~dk2V0;#g^3i_S5xecN*FJ;xJK&%phX&!`$D6zEx$cIWZh7AaKJ<~>?hGGmk3DhU z10Vaur#|z!Q4c*z;DW2*u%W`xh_w#JhC)9zP6t!ZpxdPj&Upu2t^k7+XuMg`9IY8p3&bx#m@kM z!ajqz_CC6I2YXfUm%x!J{YLpXqk|Hu;@{tIw)X+%EQHNlckJG`|M1D+n?4|W??W-lMFo7? zeYc}?(H`_IQ1kdR_5L^|DN8;mBi#cH#sInpySv$CBox5w+t@dtvTaBd_ozo4+FxTG{%RvxRUtQuE6 zzNR+Trj6syzaX!RaxUR6eSD5T!CD=so&3h6lS~J2;^4ZNyXuqUlye@f16*%l89dw#iLYJRo)$QAdlKX9y&p zh6n}ahal+f;v_Wo{dt9l2$=EJx*;eTMSZQ_A*e<-1SbzcT8VB5lZ@sJVH7z<<+2#s zhxP><`p_J-rM6)Rt9W|5eKhvPQqdt$oVV(%CAnnC8B6?e#>QC8p&P>f8ZIoHgj9sK z{bE;}ce$JYbjKx!hlf!Xloyr{^>`D9oZeWXM1uN;F04aC7s4!(SWGt*kI$RS=eBZ@ za=1{ucJbp+OT|HQE_EQL`(CPKlA)e3A+b*uyXSGC+mjIZZfDM_A&kNo)t>VorJgS( zae@~Z2Z<$0VqV=4Avs)J?(DaLgqdML=fT6f783Tf;Ru*I83adMm?ne-6X5Tc`U^M2_mWUD z`m2!yJPpVU6X=sf-gG9Nd%9Nh(FkE>Bi0<4ws=i^rT>Xrv}GK}H>rZLYRlGSpP+4` zx}mBjD#lm|Fb?qOXR?o4th3PNG`LD}R%+eYv`sd(Blgjbz0n|uZPj+LJQh=FkxC^$ zm`er5HZJkL@aczf}mgIYimopImvwd;G&2r&svNlV585>_P6sd1mWUm zf56{{&@(rfFZ%z@w%K_%NR?O0qx?8^D;fZO$ew?*Wfp+5p-+U#BR_e&+ybo=vC~UK zdVB_T6QVKVFMoI|1JUk?Q&A=wR~=;TUztMl4roskim`FJxtw4r-oGRL+Yg;zNiTc-uHaB14Ie(90;VnZSwCWyZ z$DgnP-)nGksi$0Ox!)bvB_|xzMiBjtK%lRDms^p6GTT9DH#ttP1+iKJ>PCb9PLnm< ze8yd0@3?J4%+yDqi;}>0A)oq$t_|i*lz6OlVeo*+p+NvR`T z;1ZMgoY-x|q^KOXsEqrLDmF&OQm-I$2vTZEZVY>H-I}m`1Q8>eg!F;i)QV|l*#e_& zdr{+p({@_o@r=oxVR$lAPl-LV2rX_g(LU?-c$AveqJCc}*)*H_Y>z(TV$nvPQ~Xy0 zbr*otg^(AP7`B@uiE}L4k*qUj&l#+_j&FP+* zhUX`A?LLN&8;&C?uDFr!Rv=fAszmtg7Hdch z9mV}yU&V!-OL8?+nYZJ3Mc^pDmYZmGn2HjG*|M?Kv@$Q8%@ThUEKzVpKW2du1QtLi7>h1G2dj~{y<|YN5h587%WaP&vw~rd5UdDLP=&buiZ`%5NWm?v^C+Oe z6VjZc{ac(Kuh9PDdyhb;%-^Es4pbX2z79Zpt<2$ycE2_Hi=t6E2WPzhzoGZaCe5e^ z##FxLyMu+osfBC?%N)Q}nsiZfeu>j;{Y?+vEonpj?8 zZN1m_nh;Bu>O6rZL#X5PLoy#Oc=x#~R8u@Q5G~RseWR)4G)$?q=HzsUqT3r#Ym|>` zCugMu5G3t{Ewv7zXI*Z=i%P#iRL&*Yj3(bRIKdUz&oKhJ*bX8?VLIZ*5_xf(U|{jO zGb^ZRC_823#G~4{<7-1J59!3S?L<)3!erMJS1SQhCWLMMw}e?ELgv{J^(x4GV7vGL z&vL^QyD$l3rp%2q^An$1aI1nzL`@~{F&V35QbdDVK(x%!H($Z`N}wmeyknwJDSIbg z41yyMe^Q?}6UgL9nw+`lyvMm=GYP<&=nI!}g+mj=aJhwwdJIW9r)$gU;Rfi>90}(r zyp3lkA)KBA#AD?I`7nZr$@ku3H%CjSsDDEdR+~@cZOAqS`Aa@*qcNF{wbLIuS)I9X zUQx_|gPSdV^nu(m??f1Pv-{cJnvE@57(g?J;H)PJ5oUMe zpJtr*eI|$SsT3kJjGLQCd4^w&9I^q_D#dSq*0t&!MbE6~*cOkHPl9}On;x#}9HMxj z04F_p;&J}tPmD$8s(cWHMLHs_xJX-)&f`Rx zim0L?5pfK}xD}V9gPIzECg{8nqent8$ge^WLmz=ahz$EM<=1A#ZH^K*m_RI5*oYc! zNP1-(B?*nwQS7b@&-Q|GN^PaI34=WW-Dnc%;Hd?r2-fP z$#3-P zY9_+qc8HAs^$wj<+`6e1C>~47VS(m&%vO?h0Gd?X=9U%1sCzJOim7kyIJOqwvs4ek z=mMt?#Za~YU>K&~{r23hMbNj@>8PgCBZ=zd%n{$#P{kv3{$mRPN>MCxz1`^W_)HRYWSxgSaQ`6NRJ6(ove@>Dx9cfFyr82_4KGzmaMEBe8W9w2#k!Ei)VuM&*Wsvi?!yI_9D%xX7^blFdx~4jL>NL5x>bD zdVObW{AkqRF@eD&fkeaPY=p(8mX?G)W(bf3bi{lirf!SByYqOh4va*{vdr@M_Lks&6AGHBk?w-W!7$^J?t0~$n0{4-oj|4gJXX^iqq zr+1^^Ny`sZCFuqMPGCNLC1D$jFlPnunbr)1;Z$ zqSwI)>4(VqWP+$6Ggz&0y9s7UK|&d5bF{O)`z2Ie5X;MB$ligs0u?zG(JK{v4ZAtj zmhRVzo9DGCmfYXg@e*HN8ExB?&py^!GIKmK44ho1{Ry8!a>c~qvr(1ZRxFt%h$N#c zC#Uy6`p`Hl%Y`1yS8mhk_9eUX#rA`#;(43imY{R`W=o1|V+aR)M=qk>XkX;1wN$ovNuwBTSh83qUA?5?-7OC^Fq3;+DP!u9<~D*}?H;{&SaRuf>X)Ac9~qo5 z;S51X^X#iW$Aeae|;DwY-wd zPbCQ}Qp!yiI;V6+PWMTV0!7F*B&lArx%Ux-LIZg(j7w=ix3f^drvXaBV`WMOBp zEumjJ?Qxf9je`9`HQ`ah8x8uSnP1K~g5Lg0F#Kw$-t!mBQEEWguI+`Zq=b8VVd5s3Y zv%FU=@!m|hVP&l8ClP6FPOw!I@HVNu4yl{CP(StD(1{-gwx~5;L@4x91i1p5&@b{L z8nus=A@G|8%kaqemPd1ZhN2-5Xj6Lwty*7DR?maW&Xu3REs!YW*Z9xk|H&0MvxZqx zKdpt3uY^qgYZ_YR^o*BhXI9Hx>C%X=xp5Q27noGrt11sxmeg?!2IeUEeqxEY)Q%a? znnmTC_!JnAkeB{I{MAsXwl)Q0FD=CNv#)7>GySSJ+1Hm;dKk(Jy?nMIc^;jnq|xVn zvww!~EmAT(m7P+mw9Whd&osxcOfxzCI8I)NRgGG=TVRGo!6|{v+2#ftG*DoM#BqAL zSuEoF{&ONK6)pN-qK_)b6HpVs=kk4`5AUssXADuU%cRV=*^~t?OO$6g`5T$H4^QEd zKwhTPnU@wg(nxYMuCm_z&JSW^2>S@BEV^%POV04)M(g_LxD3jOt*~JHSN-t{8@hrd zw#>Th|Lrk0#`^aF``f=cuxCN?<;*ID(<;IPzut7pkk3*l%yiUB^75-)G|0D*Lg?F3 zj(!lY(8Xu`Qz%vn^m)&{EXxu#Im3+_e?VZa7dB-r>(a;Sy2|RJqN?h;)uEyZv(-V| zIQ!!ng*(`4_UghUP; zj=)yIDqxkGn3&>%&H<78OlfWg_YCBF!48|7VOc+UzOang0I6)2`Oq&ruTHWrKX9Dl zk?ltp3kx^A@cE{O8g)NDTM>}(e6+xc%#)b`T5Bm_6=$)u7~F}KQ-bjnEc^yW%tP<5{;Pf)Z;}|x?EnZD5y8AJufBA!YWLVqjDyU zEIPrJAKTd|;dL;72qwu$tBaF9axzj2&|z7bk}9JrWo2gz(A3PJ+9AG?Ejth6p*pCo zvSXc*aF#n%jP;X90&!*C+2P!{9FgJSTTg7e>R<5m9+_s!k0d$<$6f0wlGtn|vi)eW zm`0^%Kl&Ufmf37YlAdcgB5nLp_2U$cN2ce2`dupdL^dNUs8v5C7!o^pYG!HydX_bA zc!=wEs(}jUbmk!E`^pSB|9wsw4;1n{83Mt*AxcO2qn!n~-(VCLVOeMzB zNJ-hO%x~e7IW??&gPbBIm3CfyBj2`kba!Ty2qtV3@`e;6BhTcLHwS9v+5F@TcQ2pE z;Npg|^CGa1svV2Dd{kBVNHE;%IX4`^Psojiw3(^-qSwX6=GS(#4cytz=G7au75{uW z=HJpttc)dui;$_Ir(;j<9iLw$wL;-b{Uu3MBk>_IPTle14B^*OTU<3Il@|6E4ozA< zma-l1FP-`220>Is`*Q*PLquT_8ra^W1R;oBnI1oh~cF+}6Ud9ODMbBeA#j$?v6{#EO5T{>hB zWWRLh0IP;W=3CrPOj#sWiU}2pLfZ%iw;4xev+w6w0p4Bo1K+SCqM5=XOHVxIvHi-2 zFqZg`sGvPpt#3=!s>fta9m2v^zxEF)2Gf=)5!IL|DQ|{Zdoz6+G37$2GtBv+3*SQ@ zrf(I@tyL1*SniU#;$R=r5ZZ^T8120`hs;kYDgDQbfVUj~dhinqp74;Ur#vzjZ^#$?i1v)==k@xcuFw z%9!Wfm&=yB>{#rKXCCQg_c}P3=eSG#6F1DGQRy09=<}**S6Xeze%ass(-~MN{y0m% zJVfOQuOSE@L53%9q~T3po#xBN>cIX+byG%@bskxtOep*R!n~xBn?v8y_Ei`3c=tSN zVTPzNBM?)kd#iMIFE`Y`4QGN)p={IBJr{p7-Kk&Lt6r4tlcl1v7b&!8FN*S2##Ome zx$1i5sFkbgx|@7(y0go4)Lwcb{lOlpl1iO}jB@$T`#FehBh^ zdjj(`4;BWP2$Dpalyl$7=Z+$CIEJu&VNK0KdpIoc2#Zs=*jp%+k<^+SY1Uh#Ntc zs@*ScTCz3N^d<`)zn`QbT@R$Uc$*L;;YLKTg2P!Mi0E24xcNVp-yHmg6k@S)-pLi6 zJh}qnd=;B;fUhjNibxL1<##Pi;{2Yb(atT`@YE!kEQ$QRS3}B5#yYr?w%87D0^C$2Uh3 zbZ$pRhC3V?w$Z2dicwtrX1>H=$QLaVyW|$7ulKpOz^dcqm6xGTtIX3m9jslWX%*_7 zBW2pOkmYL0uC_eNt}_>ga&0-^0-1u}vHl>YELaJOw!-1SU}WemnO4#_jukV^AIWO& zzp@(TL7%39x~1M;+Yt7(=zZ<2F2aE&FoI#ak6b>nT77t@H7L5vcK3=Io?64r&#H`B z;#})8#~E*q))>4ibldTrLN51#rH24oP`6$wUk5!r*G276>@gsp(ltN)biQO0{gUwy~|{W->orl zFr2cqcY9}hGp0ppx*aBCKE3IL{3H(U;ZzQ1>O&moxnulf@0TXcKP(3g+5NcTI2E2a zdGF$Nu>JZ<1d$-ft26iEK;d0my1&Kg5#+S2tjhFM{JGGtL=YaFy0ieBJHa7afFOOoc0bGQ za#@kTnLfG7MR-agT#M7;8cc(IJRy<8ix<-3j&;N*k)%$w%pQ6|k1^D|t<5>IYUt~r4!mHnTy0LUy@X-=x&5RP`y}u=w3=e=523yFW|ia_P@^>0ITXZQZ#XwhBd6Y<5&A zjLzCdJ&~Arf=a!{=U>}v%V2N$@fTm&#IFx$3u9bGBKHXV_}rRt>WQFy7cb^=@nSp6 z1YCqq;%#|_>|AoMU}ye0fz~8%wj>}5JO*@h+`N5HT{12fA9}w<s;W(K(qH zHXL5wj6@uCXSJzM>vkZ>Ao4S0J}ldD5#+F0g|5B~H1h}l1`?CB!T-a|qWnlFQXX6E zHL1+$7)z{7g~&f-#2Ot z_^o6Xu?Kh8JS$>kd4lt?H#T$-{s3# zW4xc&q1uBFHkMP^*uIywl&86_nzizu_D=hR;(tglRX;QEnqcuBzttE^>%rN-R-^KPI|*M z#pA-x*3H_kb#{geL7E2GxEoV~X%6PhU@y>FvZ8%;&%c$(fq7;EC(cvCSk4N2xx9LN zO&dp1*)z(!2cqZPo0&nxOCK_0xiW_HY394k1Lm6<>?XSzJlpSpgNE{#_48h3u%IFb#P_c0oxQyx8|X%6ktddLFGAS+I*bpK zP=r$n7MPIA?Rn;AeC)kM7L_~wPa>Hc9gd!*C00+y&FLSeo&Zx#fT`#7PuT+TJEj^R zCZQQlC0LlxNDF4_2{84Xt}~lTGB@sCfk5gOug*Mq7yMf;YW>T>BFtH#O9@%L7%BZr zXw-drfHcu1z(4+YJ(WLq-!D+8?3b#8^ZnNdCpc-8ABE}}N`jiM$h@iM=?)KB_ll_o zn2*Do@o~8f52nPgDDVa&@EC(Z4HgqL{6%G^PW6oadpTT<-*&vqs~?>&Pj@o*RfW9$ zuaOOagmmeK6%KgE5m!9%^Y#8(pE`E;J>SM{O0Dm0lBG-+6&iF1D)ce_GK2%ZzUY1_ z7xih8zV7~eBDR|xU3OHz;Ds9U`tSHO7t%T7IUo5W|A2qagD5olJAek5yp3LAB_vKw zn@T+?scLF+N2ks}QGuSf2*cTN?sG&i*A*F^NO28`hzUUKtzVj5?7DWnJ3H;`mK}RG z;PK#+Uvq&WUhNbSwF7~DLtiFe(&8hFoqj++_`9DT4yQXQc%lm!W#PQPx7-@A^RZ$u zLmJK@4}I7JKw>rHSBTf0EYJu2h~v? zg`<5ILV0NuEG>1V5Bj0j=g{oj9wf+{HPN0Pks6vM{{t-n>HdSBAk^zQjF7RmFqvhUU97Od4ufA% zh-W~4y`8!-@AK0h*4txjBXtJ9>>!E+vJ)aolJKwWX|oOG3FWq;1ST-N{G@rDWQVk|9nr4K3^Itu9Z zc4Q|ujia&7n~ZUcLdc+;7Ia4-qax7A2syRHX4_bLPyaUHd;DrEUjqw4UusQZR@Upe zAN|Grp?-Vov%kFf@Z+)kdn&^-ko9iJk|=8^386#~yC9(=1?XfZV9Mp<$w?e)MJ{ojlt~MBtZbKs1bpa64ZM9=O7K-DUMzV$Y}vBeo*Sa9IMaBX1!FiI4d3py4w zUMsqH09>ieeDx6U$OhOB#X~Sjlpe_onJGA;JPYp;(<)wewoUsC&RA5$K@07@dqzivBs~)2OIc(MQ=ry(*&9y(I z6*4HH6ESksh@jUs7Gx++u6g7K2RB|ECb7j34ARGW4Z*Xd0XEkvYKw<45(M0}ow%K> zRg0(nfuuq*h*(ep(V53p3j@5RONmL*xsj!1o3&dBX^Aw7=s-Y*3c*M-Eq$r0B}Lt$ zidN4hvuC>JH?BLQ?UP&B%;4g^kqyhMI<>4e)fMyrU0`$(SFtqHvtEBYej$d#>0;UA zCJ_liS(1^E2;_TzMHfLJ3TY(UVlm=MllA0C2k|dN<|7$<>U>^m2 z1zcS*%OKE&L1}{vajZ#r4=iX4W*?$;i~wK-)Ap(s+KwHC3rv|Bx*q zI$NCbOwd>aMdN5p%V@UdOZJ-5%Rf|xH8$DPX4~zyZXFeMOeZ>js*}>nEH7E)kVi5v zXK|19^gXpyMTUv1sxj8`@`_z*ueNh&esfn0B`)xYH6C%O4vHR^ueX?Wth?4(Y{}&+ zrHpb4kHe|zC#grc_Ov4E#GRdMRoB^h^b&`R0lO%syP6E(PT@1vDs6&3I z^%aSp5pqO^7WAu5$>lB?Y!1^ob0F!=TQu%l-#P+bQLZ;d*Z_d6wLY|tO>FBHHrjN{ z4b(Q*yN*OCKd|$dJz2_&pT(usbe{X8+!3LG)@iL=%}Ghmjd)I*wA ziXJ4?V9NP+$X#`PT(6T#>bw@$SH9j*o&aDV0>GdEG+18a+cE&a4>@4ahi$_`i53$w zIyS;18 zTYZr)*+q1c{)PO&9oJBALc>6TD+VM~OazT{i2fO#k3?UQ&b;4zF2Nj%D${z^RaGln z+oqOVZ@UGJO2t`))O-llNkE1ofsBekk=4^xACoOBjum^jOJ?)>%3(rRXd@Qol_4cL zaKj@9H(neRH-#@2mbZ%rX7oYVphh{`F^xR>*dy?)7bF1{djluq0ol)M_kzv+A#$$; zhJ&D2&>MIAthApvOxZD*9v)SxTgoK@2M}N}2gpWFp-t>!U-z)nu6ypF_qmbXb-2y3 zmiLSyfrJJwSp{4@3W~d5(4ZWUtY~GNui94Sq_ZwLcJA82XqmMH19j*w=kYX^7!2g< zV(2OtEVJUmvQ-Pzmt9S_`|Hacpr~l&hWssb=p=rVpMpmjW7d{+J}ds!?#vf?9u~Og zH)V1sUA*aqFa6%x-P=J2@A4EEH>B3~Ae7B8aH?q|X2ZpDUi_IZukGQ`z7hxD$20+6 zR&Gb***L}6J4u7qz2M#;x0Cm{bx+_R595|50O@$?q_Kk8yRSI4( zI72U`&zp8~SCB0o$Q&z{eO#z~VFCaU(Keyl_J4{MH zTwc@fbSq<}g)lrcu()5k$5ku(;8jx zK3J`x$<7p*DJTtIN+)OPs0Tz+S zx)zd?0W&NzFk{6)F_ZaXZB}|IOKit3Kd$kTNB_xS&A)#NeJV&;BrqHe>g&2&#>@Zw z{;2o|@jOF0!zQ9usZ!YLnU&juu%wL^aXEkdgv5WvyFA@vfIz102|qVSgfI|-22D^H z(eX=)uKu4596U$<_REmv-MuI@xmO ziwh4v43BIEe7Q7QBn!IoSNqot^!o$!D*&7AmIn{YaV00wg-))tit12FHMJDzlbx{e z9|UAR_=nJk2qvU(h8%j>0qmKK+&Uai1as+8MTv_((avg3b-v@UshVee|CopHQc3Ag z;mrE^dX6LBSzDak^2{$@_~3`bvh{`Z19ON&+aZM&SzMxsA&!8b3F85;uRa-?)4YEC zw&aLHhbv@>cS<0iALWu8p-YEG#DRo{1<;pviC*+*9{ur;J%%(g$x~+8<(2@!qrEGN z`m${(u7o^0z1*-IN9`~fi)NsmyYZyq4mMUps&~4J-O;74b*lrdn!3CUWZ0sTp#uZ| z>QTOF@A3^58u5YUnf~DwoH!YJOp)d^`nvXTe+Tz)LS5{PTt zn0nRiMZu(ZQkaBUb4p9#ii+1OwEPf(It@L!!efl}y zG}2drP~W}w(H}nf=9dT6w?1Fon|Ss9&woZrxvR{VU($_&NDPD8wmtB_ugM#H=#;f%NkoC=YHMS{1-@WiS2k zoGk6uU^<3@d2k07}B|mG`Zj<-!rpwGXTJ?a;50`&KB;vUDzt%W8173aN*SpI?RgJxn1Zm8jl=E zkMsf^f9E0Hit@=j20!Lo*&kQwHa9q2>S%mzYhI&;n^nwQvUA1_Up7qHC(gDzarr(5 zH^dCuXhT68(bDH`vv1wmMAz&3$c3gw7(tF6Af~%tZfYqY=2P;!;NZ*PSybL{fk!uy z&Ic))=F*MZg1%Gh;B^ybJ_`7BtV$ z#i`)#r`2EN7?~)duBc}_=lPmtj(KJPhxy5R7Sn_+h^j`Do25b>&S9G!Q&BN-QE+qQu51Mf+V_E!%Y29^6BjM`=5BDW8bW= z*Yi7+kg5Neq;w?7RYXEYAf4!!*aYhc!O#S80zr|05hhwwwmyXqQG)p_10tL<587+~*QB8o?FX|<^0he|S zxI=0zQSK;4FEmonBZ%NZ4k$~s-=jV?t%fJ^vj=>ygN#jI79K^``W#w&(Iu9nq|(YN zpw_nLi=&%*wjB}465F;?X-#^3M`a*XTvUYJU5705rRHigf$W_$^Rq9CUSk66_u>R8 zZ@V|eT_j^XK2=UOEdU`g6bR(F9DF=Wc1+L%seXeFHq2kS3a9eG>y;PhRGN!8v|PU| z#nQnaY6HRbjGs_8wjY2x^8w*IXnpLjW@m5YrBA}-y z|MbIxepOvzyz;cF%FSv5s(h;$`vZgU(bD2y0n&BAbe}3M{f3A{M0ZbdZMuO<$AI5Ls8qYR< zd*P!o^9=!F(Q8Yf(?`#p@%Jp^@x6WOpRZ$zNj%;eJ%Cxj00N8~{!hVpdyH-9+J`q@*$MelN>%_PE=Z=co}AF6Q#eU<{Msr$j-NT?UtDx z5}HHbVw%Dqev<0Gd ziFQz0Z-|BjqU|7UnP{z|gD=|SqTMX5J#S#?inUQT4X39S^fl<e4-y)($sS*?5 z>!qRjSue9cNl%!oQp(Y!aFZAiN^_l*EWrxR8KtQ6qOTJ2hA9$G6%;~!OX#{f#0t{*JJ5UDQzRlPOf2PY7w2hD4Z)5 z1S!YiI7e)p{zM&NxoXFGklD!8a7fsM+A)`s6B_=BnI(KpN$r+WJOKHCt4FbF z6D~S#G;zI~r%A@p%C=DD2RTjWPpdF&ugY5zp}n0+pq?HF1agMYF1}?GSs9cA53m3! zZwL7-Jp|{Q?-@C4oq(5KPMR2Hf&hP*Cr%A42*7MWLEFNB0P}eS1Db&VfJ*>)AVf1g zFsg+fj2z26Sp46H2Oy4r!Nso|q6ZI+91wV~heVwQ51BS^dMH61_fVPpz;jI>M9=ln zKs`5@QLxiZbCkbWKPCQ{8lxbrVxx2l)asj1MtTMosJaRSGKMi>U?o(JNx04dy)u`Z z?9dfWVlrlcavmB*Pf<7Txp9uDGMC2PJJq`8$l^_$U}qz2jS}d!lMiQN0v{Np(9<*0 z^XeKm*=!jt9=7jk4kjrV8&Kcq^)<0T5{VRhOIJy<6Vf1j)_Hgkp&@*NVjyY37ZQWg zNfQl6>We=~fQ|wLh-rJLXf^L*4e~>pW|^GZnCs{Zh@L3QN^eNQq^ve)YDA4NH#gj6 zIG_?dWMps%;T8}yf6CI3!l_ba!1IcRTiP35cC$Q%ul=eof4ZhmxgnbfGAn4YP+<@e z6z4Gg9FrX}*33cAnv#v7Yyu__HjhPD*8nKzjB%G~s+vcciMO>b;lS=6;dIRC;`#$f zAPKA?wXuj+!m{_99vbAL%Y8^ z6e?1zM5(AU?8yUCtQaeaoh_*)63h(*UultZ~~GP&9EG9Q}?W?Ee2diwd(a)Z|fetFJ5$w;7v28 z!NC(Y*I72c<6EjBY!k}3kZ~HqGc}JfTpMa51up2PH*KuKq|DTb%ZN#Ji)=PtRE-oZ)!{5Dj_-% zme)TiUoc)6awDIt0emUo`uQdp;NWGCgWBxhO&%G#6Q;I`6TeooGWaG8B%E89Q+IaG#w zXD}SBa$xPiVA!LBQw|IV))`#p960V^+9!ALy92|4l>=)Bh65iRoN{0|u+CsJ=fUyo zIC|9{XEt}VPINqL(v&NIm6dcVtKvLG{fTaQ0>6C7;4lJCa+r~ZPq03Kga`Q5H;+g1 n8v4d&rf1>=Z_d+$8;7D}Em;$Y%l#!hM(_i1xD&Xfzx;kH0YPheader { + .light\:invert { filter: invert(); } } @@ -31,7 +39,8 @@ body { background: var(--page-bg-color); color: var(--page-fg-color); font-size: 20px; - font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + font-family: 'rubikregular', sans-serif; + scroll-behavior: smooth; } body>header { @@ -40,6 +49,18 @@ body>header { color: transparent; } +a { + color: var(--page-fg-color); +} + +#intro { + display: flex; + flex-flow: column nowrap; + justify-content: center; + height: calc(100vh - 420px); + margin: 2rem 0; +} + #content>h1 { font-size: 2rem; font-variant: small-caps; @@ -51,20 +72,34 @@ body>header { justify-content: space-between; align-items: center; gap: 1rem; - margin: 3rem 0 0 0; - text-align: center; } #menu>a { + padding: 2rem .5rem 0; display: flex; flex-flow: column nowrap; justify-content: center; - color: white; + align-items: center; + gap: 1rem; text-decoration: none; font-variant: small-caps; + font-size: 2rem; + text-align: center; + background-color: rgba(128, 128, 128, .1); + transition: background-color .3s ease; + border-radius: 12px; +} + +#menu>a:hover { + background-color: rgba(128, 128, 128, .2); } #menu>a>img { - max-width: 400px; - aspect-ratio: 400 / 281; + max-width: 200px; + opacity: .4; + transition: opacity .3s ease; +} + +#menu>a:hover>img { + opacity: .8; } \ No newline at end of file diff --git a/static/term.svg b/static/term.svg new file mode 100644 index 0000000..86fe98b --- /dev/null +++ b/static/term.svg @@ -0,0 +1,4 @@ + + + +