From b6c6564dd33a91851358fb7c8d4edd723abf422a Mon Sep 17 00:00:00 2001 From: y-syo Date: Tue, 7 Oct 2025 18:51:43 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat(src/front):?= =?UTF-8?q?=20frontend=20is=20starting=20to=20look=20like=20something=20po?= =?UTF-8?q?git=20c=20started=20working=20on=20the=20design=20implementatio?= =?UTF-8?q?n,=20still=20a=20lot=20to=20do?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/front/index.html | 18 +++++---- src/front/static/assets/fonts/Kubasta.otf | Bin 0 -> 101140 bytes src/front/static/assets/fonts/Kubasta.ttf | Bin 0 -> 150820 bytes src/front/static/css/style.css | 47 ++++++++++++++++++++-- src/front/static/ts/main.ts | 2 +- src/front/static/ts/views/Game.ts | 44 ++++++++++++++------ src/front/static/ts/views/MainMenu.ts | 22 +++++++--- src/front/static/ts/views/PongMenu.ts | 28 ++++++++----- src/front/static/ts/views/Profile.ts | 25 ++++++++++++ 9 files changed, 148 insertions(+), 38 deletions(-) create mode 100644 src/front/static/assets/fonts/Kubasta.otf create mode 100644 src/front/static/assets/fonts/Kubasta.ttf diff --git a/src/front/index.html b/src/front/index.html index 0e7465d..97d50d2 100644 --- a/src/front/index.html +++ b/src/front/index.html @@ -11,17 +11,21 @@ - - - - + + +
+
+ +
+ + diff --git a/src/front/static/assets/fonts/Kubasta.otf b/src/front/static/assets/fonts/Kubasta.otf new file mode 100644 index 0000000000000000000000000000000000000000..06001b2b826afb47063858481a99ed680dcac5f9 GIT binary patch literal 101140 zcmeIb349$@*+2eF_I+>JO1Ukel*P75(>8?`+NL*1S!D;SkS4duZPO$q>4s4d6_f%m zAjrOoh{$eTkVO<_5kv%0WVLlet;i-#(9JJ;%IP zgHvTVKC5{}Q&;|A#Ro*C7ZX)XYl}3s?0fk>ui)C<_{?m>iIU1pHTKW=RJX0@UGue* z-kXf^T|_10Ry3{Y%DnJ+Typa8mDAC*BC`IF7Z#AS@-m_^i@Q2|dg)neA?Kn^xE=x} z=t?wYpO4-@vvkgXh;m=R8T#X*WfA?m{myN>=gcbr4$7kp9>HS@CU4uFC~MpHJ9l*D z%yZAHLHsZCLZahIeN#r({mx~SO<9?5XTD9eqqUlxxbx`k*TG|SvWYCQ3z z6KEcV2DfLg*?uQc!Q{-hLyj}}t3jg7x3kxvUr14a&;9D-T!!DLrLE5;Jg@tyU)^@$ z*kfbbcK>w7r2;$EJ~j<{%*RO!aIvgi+;&^b%bY{s!TNxV?Q@!L^{YQNTz$^%x1%fT ze*Mw7M)J$FX&L?>{M{M+E13E-65XUab|@Z{y`&23|7-me?>2w&d_(owerJ3c1jh#X zx334U?K+Mx)BjC!(SE3ZKQ7u7zIeD2oe%a+wV!WXAXoUV{U40&yZDc9gS+JNe?TsX z1*!(+I#kC6!~l*f>KJW(E#tI+JlyN19(Bj-{`OeiN5M6@Qjgd8+}NXIn$FR~{nhgo z4NuWyw^On2bo-|QGnGCXulm*PRK}@3>G#JBF$14We5&w`nQs0>%E~XnaUW)u*))f~ z;9Trn?p*8K>fG*p$9dHGiSvxJ!FkvDkFzynuZ(>%rf1B~Sdy_aV@<{vGcL)vA>-zZ zyEC55cs1ko@q-}>?H@Wcv@mp3s5f+b=Lf;SlWWvM=2ToWr;p-Ewn((~|-=CN{ zv2x*uU-E2kcKdzjFTU zeCTX;c4Umtn3PeUadbu`V|B)P85d?;lW~*5j-jElP<>qN$4|J-U@xCI#$cZ}*_r(L zgU>p+TVWsEF!+&7=XzOwQDjbGe&&c@!2JsX#8%-iT} zczwft8}8k3`G(6jG;El;VaA3jf1L5wxo;itR@rMOz537J7ydpc^J_{EyZ-Hxz%B{w zlE5wr?2^DP3H%o&u&Wx{RSo?Y&2Ja#T@u(Ofn5^VC4pTM`0q==!6pTA94GInl}nm> zdYe?cwtp|`ALsP%T}1ukGy3<*?B6|WU6C`sv?ycq;-bud7iC>il(VjE-MWf#drvGK zx6kzQjPI?L8v#&XR)8S671%6Kf}iHxT+ex32VjMpd5NN zIw$MAtP8R(%DOb`%B<_MZppeM>+Y-vvmVWQJnM<9UuOL#>-Sl2Wc?#+bJq6k%yEO00yzBCA$-5)( z?z{){ew6oE-p})XnfF58@A6*H+nD!u-aC08<_+XieolT-entN7`Q!7e^AF6QmOnFp zPX2=YPv#$+e^UM#`Df)X&2P`|&R>)Nh5Rq)UzC4Y{x|Y($iFTB&is4x*XRE@|MC1M z^PkIqG5?kPH}n6T|Bw84^FPYpR*+GUS5Q(=Rj_A4s9;jT!3DJi^#z9&EG$@5aD2fj z1&a%o6top|6!aFHQ*d6v1qBxuTv2dM!A%9X7u;2Ff58t59xeEJ!LtP~7W|>$j|G1# zc&Fe$1=|WU3kwR%3wJNvr*Kl?CkpEd4=r3!cx2)6g{KyNwlGrIUf5H3PT>~|zgqY| zh2JQ=vGDf7?-o8-_)y{Fg-;beU-)w2>xF+R{72z?h5dztML9*qMO8(66-_KUplDjr ztfIq;!bL|Homg~6QBzS{QD@PrqR$t7xoBO{6-Cz;-BR@JqI-+JU-U@P6Ggu)`c2U* zMQ;`Twdh|(9~Nyb&M3|=E-T)xczp4G#RnHpFFvGre(@)Zk1IZ<_%p>V#mkGki`N#P zSA1ddrNvhj-%$L`;=76;DE?9LPl}%`{#EgBi(f0=Sp4_mcZ)X{?fr$B{NIrlq@LuWXZ85ryvcBZulAo14 zQ}RN|?@Qh+`Af;Bk`GD-N}bZY($dngrF)lFmmXAFTROXRUg;5~$CjR4y12BtbXn=y zrE5yhExn-hlF}8qt1O5ZO1cj-r^+sm@b3d<_W z_9zRL?O!&fY)09fvWBunWuGcLt?bOQrDZG1ddognc7EB{$}TIry6mR1Z9Sv!{jThdvOkyov+Vt{E#*|6TV7H=rhHuazU2p&*Ob?nA70*AeoXmEf5pfB9fVaYa?d zUKJB74yc$`QCCr4ad<^z#W58pReZW)Nkz1xt73J<7b?C|adE}hE3T`!wc^f-`zn4^ z@so;YDqgI3tzu)vyA@k2vnmTKD=PP>oKQKra%$zw%DI&bE03x?q4M;~vnpFFJ1SRJ z_EmnV@}kPiE3c`%x$=(6dn(sgK3w^;%4aHHsQi89o0Wg5+*J8Ni()9)=ZhU z@w^+{=)Cc~8$+v`dO}N9M%#NstE0Vbp~lXR-V=MfS2p(+ER6I-TRS4%p_WKbb9c0> zH`>{8NN7&iVRL$VyE{8t4|Ac+nd%;gqCKIe(2CBE&YrHO=15DZE4n7q9$E^J3WfsK zB3QbyEw5=wv_0CpHWcj$t%!ECOqtZNq^Il9liDJo*7mhsZ9Q__)Ex;$ntGz`YeOy3 zp5ACj>&j?PTho&ENN8zy=Za8gMF z2Mn#)64*0k&eX2M3JM^M`5mCIyFD7|meH#s-8~Q#%e5JN_G+HzG=56ppHZ^yyn6j*Es%}qR675wYThX*U(p@`sB4}x!JF%m4X=i(T=jw@} z-lp!>NblTR3MUum#axrL<$X`<$swhZ(kOr`6Ok$t!z6MAVf>kdB_-&hE&R zp592)imuMpk?ui_r3Qkhyevu5^;X;T+~i!&QKyHcP9Jwxc}k+EcL=ykS>%6b-pX6aumJx_v^Vb!B@~w|lso(eCDzE0(rL)--#~hL%pKpc#s2Hm!!{ zCID~d?}hx`;`=>M|h;Pdd(vk zQY(KSVW6~{7KBh!tK?BrJN=X1ur{yx$t6wQZTKA78*OiiMEUzjAvP*MM>6y%e;+A? zMdjy6gXhRa(PfJ~pv%0b!aaQ^f6rRp+8v2>z#Lnm%}2AW+xeTXF5vHmqnX=w{yrM; z+wnP;dv%z;bu(1ox|zpvuMYWcQhRQ@JGhqWu^R_>XEeC zYo6{k*Luw}n4fd_`wXMjb4;rpfxJgCQa_EqYxtX)s#mU7Q(wp5teJWiTm39PQ_tVC z`FlQpv!?4CxE<#2M)f_LA4X_(m|=z)W|(1y8D^Mah8bp?iZH4MLo;ny(y z8irrP@M{=;4a2Wt_%#f(hGEun|61-}%l&J)e=YZ~<^HuyPc73^%VTSK>~yAQI@2?q z>6y;-OlLUL8BQIKt>dwEJhqO<&fu{#c6FGZ{XIqS~1Zb0+gUlVQ$em@^sXOolm=Va{ZjGa2SghB=dA z&SIFe80IXdc^1<=i)o(4@MkgPSqzyYM{Pa#=h#qNFXtI!J!7nAj2s(k>lq_Qf?AFQ zwX?a;Z0<9gsp6+q-d^Liv zM)0wL;+o*ARbsCR*9tyK?%`U&S1bJ03O+Vw^b~w-&Nvc$Y|uCod~DJ<5`1jbI1+qp z)-_?aYy5~j*|KpY_@)a!N%P_9f{)D}T?F5Bk>_;5H(mIfF8HR4Jf{o3I^nNQ_^T6q zb;4hr;FJ6xt`q&$3BEefU!CBq6MS`okKL{&%zlR-!N;Cg6K2=LkKkkH!;#=)_rsC! zC)GfhJrE}aANwGV1Rr}Lj)XtKEC9LM}Q(G|Y!Njg-wQjHpOPLUsIw8!#04YoGaX7${ z;FDq@%n<=61z)|`i~4 zgunU1-vYrWbxc?anXptcVJT(8Qp<#;m)$bh$rDi8xaH;0G95uq#6Rd1jwKY;f)kvXJBb82#lsYw1-_%HfQzI2ljg&YwQsdM}ky9hp zOpTN?HB!%DZq?L{RfG1(QmlEPv9gPQcn*XpG#u9v#FUJB!Ssf_ETG_IH0xL%6mdZ~`< zr97^e`nX;S%|P}rADroBDr2zs^{QcThGB8Kdkx&5p079wm~Yz22M`34V;|t z!)k4i%CSL8#|Eh#8>Dz_km|8P%Etz&9~-1ZY>*nUL5jo%sS+DF^VBv-wb&r#VgqL$ zoK&`tA2ziH&OA6$wvQiW`}k4BH#Rmdq*8T5sF23ch4iRX>740Yja|ksId3>0WbBLm z#h=Oe&gR9r1ARGL7v~nD)xSx%HZNAK{!L?XR@&RwZ(cmc9Bp3gUD;M`U-2K={rnJY z*b4WS^$O#TKEUeV9j**2O}#NWr5au{8Zxyb+9(x$@50oY-drIyBruYo;B)fBdrnngj*} zC0uP^-(T%%1~eH-`^WJS#)@5v-V2o>=TIAN)#lSIY@#PxfSu^A_-(=G7JQcC^Cf)l z!e<>m%ka4xPmJS%cKQ}R=izfJJ~!apC4lyMw6DRZ2cK?yzJl}rgJ1Pgk9gmN&-M6x z6Q9rFb1y#M#W*~|LHFQuA3hi1^8h~I$LB$8`F{w%Kfv#G`28_HkKyw$#{2}okK%)e z$>|b&evZ#i(eD@dy%C?Q@Oc)Wr_uLU`28h5&*5_!KF{OxB0j%H|KH*FCH#IHzrV-l zHGE#dnAh?9Dn2*k^L2bS;PWQ>ZN%?w`1}dHT}IRBa{T_3N=V7%3bbE9`%<*8MEflS zipSA@1MPnzWITyy7#uvj@D$Gd8SQL(g1&(Em+?6l$Imz!&LL=b;`22;>+l@#%||;A zpOrZNHGZS`tj1>*j$goU7ijH8`!{I6gI~qhTKv9*^UKM}d>O~hIQ|`UeJy_9piE~W z&TpV>XC7r{{*8+04xImx=4M`)2||fZCHgecIZBr}a#oS^B4wOT8Otf-0m}G@GEbz; z&r{~Dl=)rCe1tOpLRkwbtBrA8+(#(S zp}bQl??%e|E#+5I{;`yQ73Duh`5W*~04g|v3eKT|yQ#303iqeN6;${=D%?ax`%uyO zRP;0zA4J8AsQ3aZewIo~sN@1Fd6r7|pwih?x|B-4LZvu-nMyyRvKdsiipn0KvdvWP zPpo$GtIi4y{rpimH@^@4`WTlM`JIeu`knZd(&=nX}53FZiBS@3AFoDwEN#^k4tEeYiZ9A?Rg6A`5Nu{ z0qwbi_PUJrx`Fn(llFRx#_d7l=F+&uH0~QT?r9qL5{(m1x;H=(>|h_qp0R4su`r( zcB=ge)&7g7x6<@Ssji&rdZ_LxnlX!JoJ%wQO*89g=J_;p1I;>;X5B=ywo?7^RR1lS zokz2m)9m#$dpjL+79H{g9Xg#3y^s$53(Z+TbIzeTzo5Ch(cC_oyPoC_(qW6}uzTrn zqQeX5@U?XKcAD2t^WLTTVVZv*E!dkDTty51N)1O+!?o1#4_bHxExd^qzD(g93ZF{h z+bH}#H6BHc=TqbD)VP(7Xs08dqEA-SC-0{tKS4*HPe*>A77;C)M~l8riyopyo9U>1 z=%_R4s2l0159#QW>F7J?m?}D^myY=p9lL;zy^@ao2OT$!j$2K~Jx0gxL&u*-$N!5y zbq0OvdivB3I^i>P!UJ?-h)z78PJE9}I+0F#fli)6CqG1|>_?~EN2l&hr`}1YRnck3 z(rFLUX#;fnk#zbO==9&y8K0yxen6jg=+j5ir|+f3WwiK9wD^7cOf!AvH}u&l^x3b_ zXWyeU7t@)~&{;>&S$9xV2{kRFrYC91SXy#1E%}I=r&04)srhwk8AC0LspTqa`4vUR zQlyz8_fzCyS~`Z79z{#9rlpTlYaz8Rqt@%Gt&rOKsO?RP?n%+lQ1o7ken86(p=H<7 zvNvhj-)Q+9TK+{^{vx&SOYL8#_P^7L*|cIUt$2Yt4x)}W>Uf+w$5Uq~bv{6yk5E@0 zb)8OKkI>nB(b*T#*{@OeBaC*QRn+?jS~;6m{)kr9(W+}{)mB=a zO{-gI^-Hv760P|ft$Bsk9!6{Lp>t~JoJZ($v*~l!(&x5NUn}*!OrJlAKK~GXVJv-N zHGN?NePI)wdmNp68=bd5o%enE;*s>lH|YFN()o|jm-eDBeTlxbfxdhKeff6!NXpDz0{UG^+pUO|_)(&dlP6{U1V z4_)yy`g%EieF=SiJzcpsU3m#z`8HiOo36Tuu6mWeQAOWqqi;M)SC`S%N7L1((AD?S zHKlY-7hUrvT|1qwT}9WvOV^!B*Ii22Jww-*(e*8K{S9>evvmCjbi*lh!;^GFKizm5 z-FOw<_!`}G5Z%;EH$9>f*Ub%d^Obb-zv-4bx@8UB@|eojx1LV7{)lefPPfgc+b*Qr zo~LhC(Kn;?%?Ih5uhQ*P==Ozl`%`rLOLY5N^sU|KTNlu`w$UAn=#J~?j=#~jXVSO7 zNZ)>*?p#E7K1tshN8dS{zVmasYY)1sgYJ5QzIzaT_X_&%Al=__*krh8te zd#BR9SJAy6(tS(mzCY6a?R5W5bpLzwKqEbHJ3a6QJvfOTJc}Ou4n4SuzIQl%@9Xrv zk7)fOT7M6HzmUG)P2c}1{h)w;a3THRL;B%T`r$M5quKPM>*z;6qlX-NsGc6WfF8P+ z9{Lykcq;w)tMuc))5G)V;j8H3Khh(0^vHSi$jkKTp7dx3J-VJA%cIARrpJCvKiQLh zaw|PPnI6B7emawWdNuvDpMG{a{p`o|L=HXCMo-+Os*9hWOh3Poe*QlF;t=}94fKom z>B%rXxsIOPMo%3}Pd!dgSJBfq(=&zi%Vn6neIgp1q5n9iZnX({pR+ zxyR{O2hy*;NWXfSo^Pb**VC`}pkIHEUdW*rE~OVfpx>NKzj>ZsJc3@lo?iSny>uMC zbT9q3h<+QT-#$ezSJTU@=;f#AcYDz9mecRvqu;NlSMuqV>*{`e$q zsG$va)5bk$<2UF}rSzw3=+6hypP#3{%%#6POnQw=d+8s$ z(LXMre`e7?=h8pFM*n<`HqE0=H_^XJ>0c}8UvJVohtWF^(7*Slf8RjwPNa7qruX)y z_b#XRHq!f_p!Xy6{vGuGJM_U!`rvB%pr1aB(1$P5f9BJF?x&9qqL1#N&4<$F7pQ+8 z_1{lh_NFZt(U#3L&_V-m(AHCE>ua>_EZX)sZ4c4*<+S~Kv}1SLaSrYHCk>uPgTHjB z-k~32^Pl59>}1SyGH!P=vz*L`llglm>mVoVQYUMxlfBl-e&5OIb8>ETa{lDxPIhuv zIJtjt@)kLHCp&p(IeE*Syj4!#7oEIyPToyU-s4W*TTb3~CqK{0uXOUKJNe6;{9Y&j zTqpmBPW~UAf(cH+bf@4mPC=_vaJEx$ty6HjQ*fVC@E@n}P^a*1r|1l)Xq{7ZpHp1u z6rbl5|Hmmg%PD!*DRrFEZl|oyDf_2WzTT-g+o_!4RAo9v$jjZWxEC-japVTv=M)|oKVnQ(|R;V@^y z0%t;_GhvZ4;aF$F3C@I5oC#+*6F%!qSmI1r>P%SXOz3bXbUPDPITOxtCVat}aK1C) z0%yW=&cuV9i7TCnKXLZ0a`s*B?E98ey{A*%>{LJH>^IKYuiM%05oc1NGwBRx(nHRq z-#L@sclMv^?Egh)|A(B(h0f&Z&g33v@{ng$SSi#=Bn8hxn*sB`;x$E}z z-muM!?R61*jDICW&v$LYrM+#F2u`rF0;_HH@|jIrd0j^OY};hxWXJ>BJO=u_8MiR* z!Chwqv895x0kBOWhlWHe8kGgaUU{+Ccl-umU)i?Fn4kbQ3KS$TN7tnKtJTU-wP!Y_ zr^`93T2!?yW}N|WTyxmO2D%QUhW6HqbuWqSDotCky_F@bJ(=@*B#73_NjCFfOZz2z zq30=J-d>Iprs2EW*NbcgngYLW3%iMygE$R%-Ll^2q_{qA>+$Y_6OYsJ!Dz~*&^0Cj zXzSSTAN|Up45Rv*N0;^lUbpgFvSLm%99Et%x4S`U@)xi=o^bc!km`18oFhD zVuw><+yLmW_JBznxJ5QFpBUUaQUN0q7%Oz4BGrC20$w?^#RoldlF-P+w?ub9BRp(h z4+9ou_~nJm(4NwjT9!3Of-$+9ZmR}B--v!UxQWASHOi5WMxq5_K(5$r!RrQ9R;&rJ zM$PLag2oQErJ~WrBSj&J&C-?ydsbmNiL&$5JWp0r^@_20jumhaOgQtXm2P$%(G^Cy zB?8hUDAajUt55|Iz``i>ht;8rqSI677Igza)D3;^=tGoH3*yqjtf0Fc1WFw55#o87 z-{h5kpC22&8jWbZ8{L|kCeC8Nk0x*|8d5q@e1qUv=T;2!(!3jjl6DOGBN%oonN2xx zgY-CaF)82T`x3&KD)($vxWp@MROdiyf=~EB+s9<`=#0T8vM7Zs$XnJU67d}u(BK!S zzqYaMpYN-<_d_sDGy|HM4FL7Z1WWShrI3mVsPp}9P*D7JqfXo_p=ZYe(L4wF zM~D*QVF6;({-k9`h1j-6QvE?9Dj@hJ>467Jeyugk#OWC-+!4vxbV8jguMDFz8h*6eesp#)1Zds^}h9by!yYjrpz`{)GkRm#Q=rCL~AX?EgOj|1wj|O6vKHP-nAvaOYUzo!N%oTS_ zl(EwOYB$9Kp-F`{;Ml=Jn!iHw=N~p8-vUzNl}>*UVseb)7!G2G*gfn6@y*WC>UwbT z*sI6-eH3ilBx_=x&sjm=C_#8bA3JSsm9?hCwT%Z;8h!*xQV0(S{PP}_wE z+bT!{c#yDlG1LM*!cIV(j$5&#w9sUra29CGAj2zw+im~CZA|Sa5HZFkRgi)}WB*&# ztp#(Wu5VThV066jW5e=WguigIU0HVjX^HFgbITVErGAJuE*%7gCZSTL(1T4~k^;d< zb9Ty5G+O%xm84kLavqX~`Y^4ft?a@6gmi@L$AiMbgfx+>Xi&R~au^8J^hs0R$^?YE{%RF*_Ge06M;+im ztOK=Me_4ypw(pBYL4Be!W0Bh5>^j?T>GnuK#7LuTw81TkCF$cU`6S;93F@*hk8fX( zoP_Sm-R%IU>Mpga=5tpy67n-xB`O2As!?Rk3Gmf*ugrr|C;M}zYxycm3eSE$+Fatg z;ZoW*nas>4x5@%iDA*qnRR@z**-yMFoF8dw=Bq=4kZq4id_~c)O=VQWu3dj6YHv|$ z!3da=Yp@*DMBvcPjy}64P6Wk1j~db}mnV_wK%X6ik`upWy3k=Zr#4Q{zxXD<(U9vD%2Aaw z@uWpSD5r%R!Qf;DgDzakGEzT~*uVroOBbY$mo~*-m>LCuiM)N7A_&r(2)rE_Mjch! z03ltYdy#aie8ix_a9E0jf0-A;i+vM4vp$2B9ZnR;DGH2PiAfmz15gn}n9Kp5-|`x| z9r1L$^@=oQE<@g&*;eh#jPb2_NGRLa`=E$B`VBXI7>SHYD`6xMT^KL}Pzi}j>>ZGz z#k&8Kig<uer9?9xWj_Ec1F zeKF=B0d1=+GGW4OZJ@!bZ?&$p&_NQQs@JU5XLq1)qNj{Z7m5Ny!kSXLUMdHEw~s0T zWg_6^wOGwt%*af@ghPOlB}$YDh*_{Idy!6?|ER!*VcD>Q*?0t0$3XUU>7PB?LCdqP zl%eN97#eN%m^lI=JK)$iNB@llN+mkp z8ry?-f@viYZQ3QoL2MUQh<$gu%fYm0pBXQ7?J8NexZ#@ zk?lIR+LmFU*g>4DWUHJ(KXVksonDpf72ED(5t1iBoMeXK6*DP79U=^Alk>`p;lNB} z61L5a76yUoreV*cjXsBUpBz%Mw@?L(J>CIj1QXnrgHm^l+Bybh+LL*XE-I8s75(wh z?PZk}jFVuMxkE=0}&<%|nEwox(ZTV}4OTQ$^x zUiwM4&t2mcMuUzK3)CViaiN7#7{>p-7DjwYM~$NvBO~3V?<| zkzbYxa{kC@O^#v|9=ZtZT}+NIHbYvbk|_Lnu~sjGm_f??(&7OlJ;%0od-!sVzCmIc zw^i(TMNF{zfThWT3MfX~ATkyxevk90P!w<#zf-?w;Klt!kz(sm^I9D%JW#_SA$c?( zCE}7JNr`N%a@d84rOp_i8d`EO5g=KDkZZZctw0*3r#7> zi+$`A8x8Qqc4-ol<>qiBnKFqjs2d324hK?6BQC1dl2n|{x3my=_(;ua4TR3V)hakn#KLopeD|M)bS(_bx7?Z z?Bwzg3X+5BAJXMrfhX0hxW5uk8t~#0FOX0%%Vbql>XUjBAqHIEH!LnTn_{beH7=z0 zse=sT5$LDpxZ2p%ZA|Pt6<1W(+^6oeAcg=7vdmCev<+3Zpo*eZbTXzWo$zKBL#N_H zPaNW-*_-e8 z8L&ca-0-2qFN#(OeC5{g?&SFa4q;`+qWJXz=EzoSs+=kEQ^m&d&fEk@jnC1Me;|$e zLy;ZKhpP?W6lc`I!#e^I*jN4|F>{n~6La9%Ya}{19>wSsi*LsCjd$s1TK!NF2PHnE z^tLAW9827yoIS_B+bp)B=a1;hg_{8bZ!zuodlJ2ZGqw}};UF0}6W@T=%L~cC7z$FQ zCVBBW3UsE6AO#M1*~qxLU1sSGUlJJYEAf?=g4BnLOg*t>c-gAoA&)Z>PbJE`MS;xC ztu5{rwZe)xwXRYC+E9)w(%#B*VG#>lLvnQDU4l9^7}p!tyH^5}aDUk54TVNesXj)o z&0I6?hnZGz9vN?<1h=prvfi{4eX6XEjt=kw0DH}EsBmppKB*EKD0iy;;X9paj!}vB zD{BsHuK90==m;V`lbeT3yv4cfnTj8VKC(?rSKfAo8e1&~qrb6ksg(c_t~Xk&d2;pZ zRGH0aGnx$7&^{+IO%#MSLXlrhqamHt+!0|9IuT_GCBaFD*sf)EMu(zq87tU!uDa8x zvPPRAFh-?8e!ONgH@NuGO>1x zR(PImxgtBYy-kS>VpS8 z=u+cwN1w0Cvga15%{n|^Ou@o{&328{vFTN9DQ*1hON5cAg6N?p3FF;R1rG-(_5dc?9k-rU#s81 zkHuv$TQBfX#fzSur@GZ$p>k7#stMIyF}v=zX=H~q2!@NyB<*;27l!kusFYK|PG(hs zNA)8*gRdv9)5YZNG%9U#TSZE9Yvoj~i^aNlB;J~+D*;~Hwv9pVr%3$)mr_y4y-REN z^1&V@9{hMlfo`8^j;_4@wEErAc7oC7A~_}wI5EX0*G7TWMt8Env0KsTf48)@3(>N^ z>tmN~+7{gM%&q}pF<$xLhl_gJUQXD&*nQ!mKo$=`bqQ#|>_#&cANdRifLL11d$7f1 z;S_2(cTPSq4wGsM;8Nkfg3v2J6Y(VY)s0BKKY$lI#c@1Z4B^HFc_31WH_oElC&bv* zN(01yXP{rbkZnNc68~bYBESVCELzLMoOo=_=wixNL-1u-vB0cgZ?86_0?dAcfJ(83 zL4+~`7E9iCvKi>}sz|xpYP2A>0Ld!OjFGFQO9M=nE}>PNk(h@z(3+^~P5y#Y0F!59 zrT`dkV4;_^A#M%JOn1#iMF9V8RSX5yx?@1)c2T%>F_a9V0ageBk8mJ?2-}xentJBy z17&BC*jL}kAW7W1Vo0`TrEF@O@2&>mt4#@UeGzxw#0z*vi3k!?J_MtiS|Zhv#?v+8 znTi{7a~UwC2SmV*2a-JNG59n$$rt>*CD|l*%*~&e6}*0$6+(XQ)==)hju$9ed3v~a z@=&k(%3FT_llVOXhb<5NWV+`BK67AI%Rq^m>06WqBBp*7vlXkdEzfQ%iN(@n+|*w; zitu6qDj@!MEDrRkyJlMLqE3VdScy0qj6K=%_aJbYv7i4%m&}=;Jl>Dyrhb{% zC>gL8RNY}}X}uXT>GFZK?t&$DyKb=4zlTPwC9zXWt`c*B1jWF)I`aYFzFuw3HpvJw z5J%UM4#HGdMF%Pva28X202+}276X4l7cN&=NXg3@uXM8Q-OCv!NXFE&f*OUJj?-c? z>7WzS0FwiKu6kSpu!{4v_Wc-uN)&p|rFM0>4Ebd3517H3d2HPQA|dyrg-klk$0D#~ z?IkCa39=7<6qMJfe8W$Hjb!(7QoxWJ8-XV>)GPFL2r`G3NFLlbR~74PF*OZ5I0f9AiHzXg_6mnA(>WrGrwf@%n)-5Rci`P z!LOg2u<^S~G};Tf_ONqoN^6G0NMcE9s^C2yOG6liBU5j|C#0B$xYEvX{^!zscMgK7 z%bP8y{)~tA9?^6VqQ5|6Qgr-JUTts%$Vt<#SfNGRqSD$&m-2m9)-q%d!)4}-$)XB2 z?bs#gVZ*odo~UqAL220V4b6$^*GlvP$gr`cz)dVR&n+Qz|GY@1ZDRh=y-YpO3q^6# zxi!qoUXQFc(>08>qrV;RS@ZTRPm=;-IGwtG#QRZl}p9QBBn6hzihTXmxNT+X3RKee8l-jmLRTDau(Q^(wN2=nMQz8@>l{OEGfIpd zP#L?F0&(Z1Ua+?5M_b0ILN76Vo+2xa1=6Q7&J;!hi=;z8Wh#1`nV2U9aRHvRE7(X} z-aaQ)>GF04HD$wCmCW32ioPxU!AXW!3@VVmsa(qMj7n<_Nl`tb8<>jDScA55U+mNj z))u?E>|2`^pzi#fjB7VCEJ&wL`# z#|C{#lsIpe>lDfB)CRG5;CRz$0FVF`T5LelR^W!JjbT#)1k|AI#w(;3USZ)vlNWbQ zYKl`9LZmhf;mdHhRjnwixQRa8mi=Cm92JS_=-o!;X;M%81E_>31+iDUi5G?oz!kN z-F6$~U;?X^pfKnJX~6O03IjaXWiD(@+U=lLyD0H?c#TP4^BmOwEQ(Gj0@>`z0x08#kdRUa+l^QctkhdcQsNp= ze@zVZX??nPnB%HLQRnx6Sz7}FadiDkpEOG!4~m4REsy7-9`vkC(P>Lf${wtY307fI zcz{*K%1x0Y8wxaGED`_T2|-P&A|CW&q#-g9A&Rky5cx(3dWjCjA%iK-0Es&{^~9UJ zpXKo>A3Hilh6FT%7k!Q(1J;bYGMf99_j6>j#k!7lSmKF;% zo^Y#`Zr#{p{-QQp8>|Pqh0BN@6W{)dNwZ>oD!*8_`1z4AkSz8BHqgtoMcK+rV(dHV zZ9@w_YdB5J(1MzA`3)7c*s<7Jfrbysqf)kg$HWC|cAl`vP#A|dT|?CLg1-X8vC%jS zOlE*1IfA}^;#}Lj+M60DB4fj83`}`7gfR;PUO?eIL=o6n%d}t|`bsa`dhwb^qk3F* zv!{eE9OIhc8t7ATS>Owlq+oT0DNf->sAO+hm}vv7od(=&>pp`ZIBh^!3$UHbjuj}^ z*zIg9j%@=Z*tH|3uq0z+5kgc-O9BX&b?Qh+p`PCgiolU|%NT+cy9H?RZLxH>Ja8kA z1;rRLW?rT(57(iWoJnsm`?Ar50iu1-Z_2D(gO~3;8q;Q{#F2;(3_-;G?qdeRffDjo zcMHFqL0MbvJ>YL1?v#u2Er9fc83J4Z^49_^;uul_a9~%lPiR>cA2h)BBXDqJDBvig zR(8Y$a9#qvU(^!aIo8W%fWSHNRQ66T>Ls6V@|QL~Rom0*pz(Ms1h9KS1JJQ`#5zdU zT(-N$xCnX~wuIII>qZPXuSBn+r0J;Z3+bd^1twN46$nHC?-mp)j7aw4`p`hJ>RrxJ zT4=n8dcBX{{qPPUdIB*Z5%oTr%&@l8=LS6u^p~(IQ zeT^A4aBP@1J1i|AvG-cJ@74t|@L7;Kpfhspra8Z5`ghhOuy3f&*gD!V#Q4=?>0lA`63JgYY!<_7@%?c_pCTw8aI=9e7~Z1qreY^i)M^g*~ivS(j7O$K_}{gYJr94=O&({`ec&A>YwLJ3P-I3 zqf$=6z=6V*zuZGH>ka;ma2_=6?&+>y`2V!7D-&xPCa>_;p(QO^69F40sR|q~cp(jl zsQi!8;+Bi5I8%{gd{85!%UU&x7p%l`+#K)DU=b+9t2w^LeZ7U4gl}Rj&?UUMj0_LA zWxEox;5{%v9e7Y`Ri#ZAAh z$E&)^4x5O?Vj=zzs!J9bX}>FESY#_Y{UCLU7PkCk$BPaL==7Vozf>GHrGB9PmBo=z zn!xZR05h+N+E#2$7MLQk#u|GkVr;Kw!aYFNo2=EBCCu#NF^>? z5O;^xi|qqLf^=`jq_3BBu-Nv>&)|VB<-FlaQ%LFiqr@ zR4@2*VJ()WrdjcBm=9-jlOk()YvRy@y&YKr3RD;>3M*Gry5PS*E9@!qp(-4JJ6w>F zvIR*L;Qxy$DQ~J$fL!Al0;TVMhwZ<^7e`W%I)5g1Y++nxhN+1xRhT0Xra>`81TjH% z2(c^arV5kulv#*Q%LX(GZA@Nx(ZMYCihef>G&IoXI=n<#IKQd>Z3bdtqy$}=y%kQ} z2<3mdgKNkt<|HL2jrSbDF9ckC{Qh}$vKJ=s#uq)m2`s@?+qYcp^kpVgVjvTp2#wc*B zP{222DV$vzw~BW%OR@MynIXTHc&_N?9JQP#by%!ybrme8*j3{4>KD4UoRoP@HGamIf=g&hlhd>WB5J@wtrr3OH(E_t z;lj*QBhDj=;M-R?#g8!RhOfyws0>V7_LhkZVI48IKJ_X^BCsQ+JMe}f5yo(7_4dG_ zau-k%7KHk(i*eg+L{g3i6V;%RW;&8JdKV>vV&1Z;D@%?iIO!^d?@x*Qf*C=m^d3ik zzPdN=-a$lq|NUg`OCqOuT-rA*heKy9OwK$;a;ed&pai49Xi(;diS#i%x>5`dqeO8^ z*oH4 znl$X20KqAocNZ0bfdywIFxt{ckBs!BVFI3n8^5|nL+ispFd`0gzW2iCNHrDUAQr)v z^|(`Ia+#S6NMWcJAk4i=UW`aOBal0x+Lr_t-jXTY$Tu=i03y~&>^;|hB?jF%O={z; zg^dc0G4%n@`gG+!tY>87l4{>|*BdW_(o8o6%S3HNw8qQ9b}mYl)Oc_ZFN`$~OOURG zdaH{5Ifnn1W2%&DtMs78Wcra&Ez!!Jd)jZfPL<5~G0(&R72CDq^+JNR)@rW#?*r?^ z>gL24+n1#i2^jvFqAYh<7z`!SPX`%0N5tBMt|{Ze84Zr&V07<~4WFlvLlM54cy^%F z0`s!SNL8ebMaLd*At)ACY{oKL9}R8!5e8Sa>_RbURU;LGjsYTsbTIoPkmg`#*|Uc4 zsXu^!#MbSXg!qpKh@x6h=9h>&u5d8B z3$9VeU#QacP~5d2)Wl|@9G4XFayw|V?2};kXAP~X5n)eh_BNDMKv(K;ApH?h?AwoK zd8})f0$XnN$RNy=>KTQ``?ra_%qjgDh7)&3hbo{j2SNRROnp%_e% zloWUX9rk@<+n5sPm~`n#%?6D~+)^)4VR&K~IkTx?aMOgynq^^DDIg`&<~1903h*_->OQPqZLswocmeFDG{I|-iO7%f*w`qLL^wkcuiqw-IK(6Y zo;K;RKAi-5x}>KCd??b*b4wza(J+%uc6f;O6)|SbboyqVK17Wxkzp%{n8p|t1!7L3 z!pfJaz~3vp+#!KdG?5=iaYv*%Ro@(FG}8r7nzlXaLN zn=0yRmV<3OL5%Vib zw+ji&afZd0g6N;QTBXmZ&>IK3P&!KV+IM2p+ABArr3$k}MVqPLGu29&3AeCI)AlEx zM9Dz&A;A5%oZQNHw*RI_OK{F)1);5hKla4=5nD@ijpRC~Z%Nu-g7y<4X3Wtru&%>% z^R)Iq$N9smFjWKAZo6vbUg0MQnmyNe9`E{9~> zw2OwkB*qPy})~7N*`}#;b zjf%CB0fdj3$mULN<-VezQ-p#&;FCSn=%T>HQYj0IYKGv^7W^}20y4(z6g9|F>0;L_ z9X5N?){OhDK#@HHD$_wX9BvY>5%_&iENXN)8z$2>*R#&LB86XQu{=k&?1ArQohWeq1R(Mf23^NQJDOD4pQE zK2fN!=QN`nNQbhW;gT3Kyk1uy44=^fuv8V#~J9xe<}IXc@|y4 zQg#ZYNFJ!0-H6PYHqm49G0%v_yIEjnAgPf9yav0_p!XTbk#;<<9Cpc0E-Q0;PN3NS zkUXEeO*M<#q*z)QHFkLJ#%fg1KL&RE2uD{tvD)A148@`xU6zs;;X9qZ7olo~7FD#J%FXN>c834iSNpaafg`Ef~8!TJgt*X}6QW_wIq9 z8dQ~E3Y+8;h{6M9Z8!?5-WP7~J|X;By0>6k8t)Y$Mn zMx!GeGyq|2S??{u>MPz-m9AgXV#)t7qa=voAsYsFS}lUm_g8SX9-k;#4V%3YVjBj3 z{`h6@nDk%Kl#QY;{Rl>edKjE*>lDq}G2Pa3;$C)qAGX31gHN4^A%og5gk#5zlwxoS zfz$TmSokB|XzKf0De*G0XFLa_8)cPkrp$Fx1IW5zaERxuNGcyFv%acHmyC; zw(YS~n0{~y(-t-0Zvz;*^$k+1I5yXY#gm{IsV00|er-j^%4lbACQOc9?awsg9ga%$ zR>Ig2lDI^curbQUnDUaUZEA`VcYPZSsIAnvs&0U(BlXlIM>V0B|LDY4y@qD23_a~O z@;~~ZM#49$ZE0%&=xFL&<6!2EOKRCJt_zE7;{i!ybD#~xw*|1;E+<4dhD)<`&;Lk} zEyCp9x_PnvSIFa;gos%Cg;1&2C9P{lT=MGLxZB`GLO?j#{REJ zQ{=V%@cc)bJ2TMlMv3c5n@xZHW!GGG+uzF`pSXtgQ=^F8Rt=jo)Y<~s8Eu8pjqY;q z9@2$9iDlp$mV|F~;va;2mggq%1>8My6C<0mSgC8y04mqO3LpqWhAlU0aq7?!OxdE) zz%M^EeYJ?BpQTSZVM_%scL<=1MQuBP-HxAEJf!-sLu0o$yN)XP61b}&9huCuZCs`; zq6Qp!4Ho3g+X5Jc;?)0VvV3XKS3hAsANac_1Dsd|dn^seqlN}I1o;2P5QlgZcKGGN zfTB!6GQSN{+F(VPko0ZZ!lDdzQLO`Kp75kUK%*zz308wMVt2k#>IGN^t>4N0M>;hM zhkpA&VeE1M3`PWK_s72fIk6`W^ub4sbRhcJO_&0Ei~EPt&Fx(9sB>Q|c{Ztb8-EJZ zlp`V%k%N32Mh5yMEel{}K8ZQ7!P{+2N8}DF-+xvP&M#+!Q}5`rA7!=2Bx>(uvcaEd zK};toR`6j8BE({}VOHP++WKF{h%G@&ACM_gd3b3mdn)AQu-%AdO*|)IIX8=3YGOlzAJIEPsbV zbQ9(8?#Q>QI zu*-ucL1tJfa)Pk|RsynfGcadkNDb8DjFN&ZxM2wdnB?suc6*?Y7vJ5EQ)G$GEXlIm z4et`|MApJ1uz+9vJ_o?U5reWPvRHK$CY3d$&{hDrxG|%6VRaZs3KFkhf(30@-il-5 z6;@2_47S8iPziLS7_dIj=jBwrTp*U^KeGGn=)>ZHTAeUcV_B)t1r>}Ph9ZJSAJt~_ z2V76VpccZ%F{Z2f&!`B`7UxPikb*nP_o_Heo(Rdm?!iY!9R8V;UV#)RXU*#cI-mhG zC_uR@s0O_Nf^P(8ZI^IGWs7XH>K2gdqhEZWfVua`z`Qsuz$o9hZCsY5VdJXgGSw)H z6J8JmXqFF!x&e-^XiL8Vh|nTbBCX50;88^FjE|x#!K$B;yyym$iW>1PZCTvZ;)1@# zHSNTed;t?+WRwWS0Jaed_(T)f?dt=}mPTC$24H)H@}j4x5d!CTgkyxzfe~O?`ohvd zjqu}oKp>mw*Y5}(zGq+r7JLc2TBO5E{S9c4q)b!G9SGcPvrYwSnbs(SlduiyxT`E= zd9+&h!;G(iVi=F~k#S0X5{QLTS;mjmRPYv(SBZ;^Eo_EQfe1VS!%#Q}`Y=&5J>h!p zvyB*IJ5xO8^ABahM6D{jxXZ-CfV^l$R&W8;(1W(3Vas~ZFu+U0T%-(Gcf9>!+OA0@ZP(pCYuFm+i&zT z;t;4plp#$5rIxKwBQT`y8Q}aXidK+RnP_xt=Pb#W+JY0k4N|tmh$K<~r_1g{Z*`Kt zN9}?0B^a<_C&<04ryEg)@p+FiJog`*y7g-sCO0i%+X3WlcU1gA*Tz-XKA= z6`KL?_V&0~r7tYWUqahC7jS@f>E+6wBM8oGGxH!yd;%BfFB}Q= z#(?3yVkd%2M(PqkWF&ir%m_}ww!f?Kpxn~GmZ3KHMD>}1tW8isfpgkW-21|!HNLl} zEJw116shjkV~mpKL*oKK)Uu4;RW7|f8uF>{yVl&ZB zU=p!Wtr!i|#)#Zhpa|0$&YYLOU4~s0YFalAn<`3(Xj(=izU5z?ZjeJIq>nPtUf^EI zMEiKRokip6vu-<^#!{c#&Ox6m+;%RVLbtf>JUW;@a@+Yd)|u$G3$i|R>fLrB_2wMx zwu@*@&Mj`cm?q}#?zSuGgxo`f4k(-}Z4h2mxRf%<$;t-{b%ot-8}cu_!)-(Uh3nlmKoN{w zN$u#<9k>>R;O~11Ms@>w6f|@Iehp0l2LG5wzSc`8f`)EjX=Vze7!_ig)Y&F#0i+d- ze>u)~(o%fK8#x8zJJD0|*$cjV=n$HU|4Usgic^h6_l+x!&^SMxp}m1|H7HPYEdiZT z$V16;HCnyE7oVO2S_sOO1X>{hC5;gC(gQk`M!GOoq;m+a%)#+t_!cUa%vy2mm)9I{ zdMPRt^-2ngTP4>Xj8u5r zx%X0xQW{lSR}xfK(Sf#-xyVx;E9zDMR*cspBeV)dT>xXaMhVuKjv(J48pbXDh2#HqwYAxiq(- zvuka4w6(1_bW~F`bkxcvO+CF$q1tIR^=|uwNbAb>rf&C0cW}?166x-Vc6Nknrc86M zG1pnccJ+dqLqc=94x0mrogJ-* zxgh3Db&rLr6`dWOJzY)Bk(N+bbWNl^q-anu6tEUS(j94PX<8C(kM^z&MLR+(q8%+$ zCUq?7={oeJwn(V8eQj4;j~q93M?#UNo@o2pP)oF@H`>vGIs^jX_pE4YZx8iE&x!O*2_4z{a!;r$(!Dg&+zY5p zU0v4x8Tr+Pd4Lk!~5g z%2k;XX)}22)%?zB3bl1dmd>51^a8c4UcGusSEQr22}+r=tZS-nPhAr2RpMIFv^>&X zJ9Q!`X`ef>qjPCzdwb{ViJ{)6?$$`}+=*u{X>aOSKJl;x(O#wZW4QaAsZEC&mSJUe zOz_Gc5D|4{5u~H1x3fDkrKdO2w4$qXb)-AeqReC}WHPmGX3gvw)21!}7iYqdQ=kPs zL+I&|v1D!Nc(#Cs?#|ULv-oCdSt(4cXKGJd=jy37Giqnfs+l=;xwy@cBRjjzz!`Nj zK>6~fs5|yJh?ng;bab>i($N!XjIN4=mPA`aXRmB(UJjcIofGM5Tie|eTGk0aSg{sP zu_m-6(lUSb>Z6)#X0)F=f9~8}6*pph{Oq8!On>+N)N|LVQ|I^X z?wP?)-oC2q{M4zspZoc#pL5>xhAM=xIb0Ry!)a%|{R_VUdsUeG;^UBS`qH<*`nB)< z+rRxS96BBQ7rg7z3ok!n<+*n+Wmo@SNzO|`4CQ92y=@!Uvlw<7rpFF zfBq#X`!S@?z61xJ_3rs2vHdvGiI-fu=gLQ4^w<*WyCH;U9k=_kcU?IDZ4X=?!toDd zf7_)OUU~Wa4}`bi{4prM?L8M>dhwlay#Fm>?)A5X@cegNe%X8Xgx?K2!`wN`JP)KO z8p6_RmX7?IXP@y8fQ$nnd}`~y_bK0h<8s)z^T?gp-xTKT3cKdWovdQRi}v4mVAsZ- zew-KCXZ|BRg8yfRXW4-{KT&6M3rp2?VMAD02n#rRU|-C!y|dcOVm!*vEg`%V+0oqQ z=dEu)?`^1e+sgh8d-vZM!jU@{!nUef*|)-LHt^bQM20;ug;w?=Uy9p0)_Yv#m}}eX z$**l~=jCU)Zc5!#%j6hz&7s7Cwv20UJKq*x=@`nc>?kDSv*xJon6g zH>Xc0UgU?$4;41H*VR_v@v`jHa*gYXzM^sNUtny1M*eOae1?~Q0lXj(!pe9>p~E(W}ihUr~L;lW$M4?^(-F zsdGvhwaZ-FQ?6r~*~?>w$oVMd-QjuokD2NbCxnF~I8*%~W|kYm8R1*1Ypah|d#fL< zZmoW@`qk>=)o)i1R*zNxP(3yGqPdsOZJ&F?+&kyqH+SXShv&X~?&i54nY(@NH|PFn z?vpQB*%r2)wCzpX&f4}x+xBd`b=&RReqq}$Zu|K0CmjEo$G`LV?>qkckN<_^fANI* z6Ski4f)ifyvSVKMyC=Tl#IsJ`dh&-(-F@nZR`#!87K{1ok5=DP-BA4yTK|da=g|6Z zRr{)ktH-NE`-+bx?r(VIF_|Tq*-uuwkKD6nf>cLMw_;U~b?1LYD@VW;-|H03G@O2Nq>Qk@#vk(2*DSvkK zAD{O}fBA=-|8V2{cTf+{e4b(883vwV;28#ffoB+a+AwelkTBhX^a(r!aSfJ{&P93xOG%%?N)#SgShxxa4@PXb1?kZcHlBub z9@3Ra_lB^z8wqznHsP6#Bc6wJJDy)S5ed(OY~F%|e9Ku#A4GZ}griXZQE2B`sQX#h zB3w14y&NGSiDfOIC(U3jJh<(`Xco_kveThBp4yIUW_GS?+YOLztZZ9O0P z3(&?39u47z*nc7FKL*zwb5#h(o`-aQ2%m8Q(hW$Dgz%zmNH-(hjr2qa$6bVkGB4hN zbbAOdIR@!EJfv|l(zQqrV*v~8ZA01P&qcy@C!n1Z(9X*O(rzSNf8sev_k{3rT=()@ zLwE(+dBx))oOCtPatJ41iG+4fLH(y(kF*rRXI>S;E3yB|+d?>X57O-+d=~2eEVT8i zPlfR6Gx019>O1W`BwYU*lzGh!NT~0%??6J??E&d@B-FkAu@H7V59uPLJCGg;;dQ|F zdK^3b@(|vD`rmj4(!C+P={zK~a|X)28OPrIcnF_^GM|gGpL=ZxXD%RJ7sBUlLb?hG zW#0l>-m)CR=cBE&b|Yc?U!m+;U-ZEc&N&eY z*MBkU`{G+d_!40Ll1D=L(%VBg_pA`U49CChnh@T0D$+e6y!{;^oVNw())2n@Xe89} z6_E8Sc8BnlXCML3`6&NyjzPLRgnx_kUxo5th3npN8WN8EyK|8s*H@$6uQ?M5m@e3Z z^k@hdULL|bpNE9D-i31S0+x%e4B=wnxcCk{wsStx10n3fxm{1dRc;C4-KhKBDEGB! z_v=nZLcSYq?!F;}OV38SErj=+igbGjm*M)$9uDDhT>teb^YxE}a0O&}?^Pk}IT{K0 z-gjjP-vC*@;ocD5zZ(fyuf+KeoQU+X5Wev^B;fs~fOIvMb8+1V(Z)A#LOL4>_`c=Z z5I%G=(mf$ug?2yu!4SR`?S1P-NRNc@@6SVeIE1TF=4#-)`ja7i+c`*gh4Agb_U&l% zBdGhDGmt(N!grv|cVhcHmqPfi^O5ck;aZfx_TCV_`|=RJ=NKfk`~O@Q!gUKscZTp$ zl=~>!`rcbY_`b7{mP5E6+uy$@gdaFAgdaq?AG|w+8*U3>??oZpi282YgtR+^n^E7* zsOyJN?uR}Y!Ve?=;ZKC{BiAD|Z9%#^gdaT_X(@#Na7_q5hWc*}NFNK~Kc0v5a0ow+ zwtnIrA>4+#ZhItzpG18>g*JZbu@HV5_1wM<3EMw&TL?dkI)4`Bf9_PIYeTqW0qG*7 zdqVj6Gm()0r?Zhz&o5ks^r;Z;ya4I;5PtDABw+g` z9Z0}=AL{#E;Jg1gq`O1-y^D}=-T&AV!tbAkgnAzUh6ixnAKVba|3rO%h~u9)2I-Ly z{@1l3{1Nv52;ZH9Q;m@`q-Hs>h&PDoE2oK&9!b5k4@V}8B zM*2UyL-=!)|MLez_)*Bi(mf&k(HZxgz(f=AuOZ4<>e6e-;byB&Ot)GE9WCUf|dF!LscDzbX%zAb|Bpys`+z5 zwSaDM0oxlcKzcM(==Z9P%b{At{v!4_VgHB)q|1>$8LA`qglaSD*?do^wp48wa7CD*p2j9s7|^&R41eT zQ&8>{)bp9B=QHmO)hp4?D{ z=OCf2&$%X4pSuMK^_+P_s6OvJB-Hg5VEFv=k!}vvSvY^zMM#f?>R+9Tgkx{TvA3e0 zFE|GY$Isq_gzLT#nEv%9r0YZVMJV${sPmkok#NlyKM!dsR9|v=sJ;|+p9_3nc5+9^fpmAMz7p+xc8;eP`&e7q)&wET^AwU5vq%D?jl@&F>qas zb34yMdLUH0aQ>2QNS_SVyHU^Ao*1gH+k*6XsL)?km*Tqjpw9O^9IDIqgzEAIq}xOF z_2(fihYEdF_1<%kP=3$Vp?cr*kZ|l9c7*Ev$A#)jl>Y$IH!@uxs&6_yR38NH58fTB zZ@viWu~2;rj(-RkK7{tJLVF)ZdmnxxRNs1MsQ&$_NK2u*`utFR8?O5{$nxzcBi$0J zkDO)0(dwGJLiHVx?K{s5)pz0A@A_1z&<|DLeNU*q=M$kqA5>j;L8v}@TByGF7^Fu+ z^?mn;>Uz}w{da`w2Otmno$7`wL$&v8q}xJuBig+Y_1*-GH*Z1$h99~-R6o1}33dL+ z&7r#Gyiolp>iiGS3)PQ7)*nM1w_Y8p|9CXg^+=D0>c`RUkAE^$KXE?Na;R>*B~(B8 zj!^y7F-Q-D>Zh*@)$M5GXHE~*&m#RC6Rx}Cj!^yl?oj=wlaU?{)i2<>J1-B_FP<5y zU&66pMjO9;SE%kn{davLRR8&0BwY7jZU`0nlDEyF9j^O3VEenf zL-qIPB4PXQ(az)8etaoZ|A75}JP+y4Q2oe^5(Z$o-CRQu0Cg4_py;lLB2TDdOFg`<&f33JtHNDqX$xh+U%A>9$?=FdRF zxrI}au0(ny%x$r^!sqa8NSNP_=ky!bv6PkPHAwgp0-p2d zGxeVHDG404_FkH`S4gH^UL_37E$u)Rh9>5Dd)&^;<9a)?|3=EGGx-%fet=APjj0v1 zhU4=%BfN{8Yzo;>KJTo7C##q3v5g!)W2Ow#Q9_0-^&Rf2`ujH457~o%ooRrClCp%lse*E|ZOA;&HJWbIE~oC<#m{ZwM!!DQ2YCu z5+)`pdeYoZ^Pgx_?s2up!0-7a622>AJ{Gy?v_EoV3VVj9origb28>gvi{~3EGmc+m)!nu2|}=3$gUTt~q{3 zX+9j0*On|5jU`*#<(MrN5ZC^ja2j~JxLyaqz$&Gl)`=pLu)}+KW^nS{fw@&uJxz!Y-^Ss9h9(#%{?+6=NgW2<< z_2V-{Ue*#hMHSe#4|2sZlbrhv79t+D4ZJuD#O~R^Ym%&Nm&W{j9B)WZo6$Rr`JA`d zg@kn~kuBiD>QV3)LvdZH~P{24Beg~(mQYlMl{QC}^_0D|l^b!hRjV2I<2 zh{p1!&SH<=*)kERb&5ZHQNU@ z=T<>|bbEGf6^gOY46bIPM=$S7c8V%Y=Zu4`F?ueWxJS9FUFi9MgekGeE2 zs=f1A^lEdV_{v=I60Jr#CSx{iv~YZg**>U)y5v6fOFqDh80yP~x$ZY=z6LDHYL9g$ z{jjavvTPsqn{~OROJKZ}!-TOZyBR zYB99b9X{4B$AT@3;aRq6SGoL(Xi-j#($bjhDMYc@H{fV2UDrR)Tc3*8bwVeA10l)+7o|ygtpctqw_{zf_BLz&eV}12Gnsq zkpbdl9b}f^up0yY;T#P1(TFW(Y}v4akLl{vjxNI64Vx;8psu6N#d!l zt2rX>s0o2LW1O{s@!D23=4$br_lj(nwld7QbPkW|5&7)UaTevF5A!@+K>N!un zBRNG{wpAi!+r-DD9(DhXvQWkV>ckjy8EqYIo!gBJ#dhUe)TfYB2iC3u$znxUd<9PP z4NB$PtiL^8Wo42sn_=bg^(bjT(N)&K>$t6WYB9oRDa-rBpJXxS7jX%gbeoQA6rvpkk%p)FTKP4YLZWv96oR7o^(B!5e z#j5!k(smvpx~(AEUS#FPWY4*Py{EQYA8MXUU7CM1=UCCkYK#diHV{Ktr!-*oW5499Zj&t6);@<3cij&d z;>m3*2B}S9$mNdmiq)8Fy(Y$^+H-*sy>6#(aUHf>{+tVJ^ZGJc2p@A{RIYPvzDmq2 zDJ{~jd|$a~fybNI0nKDSc_nKd#};*#dZg6$fG#(HTdrRWjO0ljxnu9d_(LrADROdU z0o-B&Iccx>Wc+wdjG-7?Xl*(3IkhRPT-mYs+Q>D1fqfTzj<|Z(2Pt*VTjI}Smh4S) zSHppNZJjyCffHhoaWVQO`vBJd#C^!2%LRQVihqpKTrOvk0D+#Z>Q`}fDxfI*Lf0HHlNQ^yXk2ZkTjV^m1m-N+&BCEzDG16!kRim+tsU_Af+Vp9&HT*Y@Ma&X zQTjW!OHQ#Z{Uv(=m?7554J@XiPw?v~q6YTgGKFrzSug~GmDcNK zP3yHDv>v~9t%gxDXOG@(QevO@@PP!muI;PD=22q?|D()`a-K)7DU(GC z$WZ9>s1_fn&#ahD;yU^dEuHP)YP=xL~TPX#FE|~J+-A*aoOSwZA1y9U3$-g`q{?*8*vmRxLwH9*^2B>c9YwpZ70sS z$G8x4{Ew|bj^y{f>$QEds7}^pGI=arz7PGL$v`=1Mbx3qRwY~B?mG5^%lFM=M3eBK zwNKx;c3r{m4L6yp3ternlDpoY|kV7tL>WM1XlDQ0;a;#E@AZA#*pu#95vd%R> zYuFRlJ`ThD%ypD>MMJi)g4B1lID}v#MZPlX- z)>@3~hVJUJVYUw(ypl0A>N483B0^n?+?4Y)ab~<7#OHqEtV;0;cUlm8_urWIL1DFb zWk=U@NpUWyx!1vZHmJbU#s{C{vq71S^u$rtL{{bBrW5ST_h>6T20Ori^6vgEJN4Y2 zM2J^SepZq?$NHy6&)lu!?`FPxSmWfryzEgGooHQVBaT^8Ne1P$RM93On_U4mGF#Pl zw8&_?zFlM9fEmrmvlf((b;T%6>yG{ z&Cvf+){hQF2^41?;*Z*obvL7j&ZBI`tm)qNSBM4J6C$e>a(W+tzBN9RFggB8`n)}E z=let|d(}DFb3$xLbXK`!OgYypBA3bwNzpRwJNf=%W}_a_SeK#O!7&s@QY*Al;Mqcr z7tblGFFGl_GQ2vgtIyzzsYv+PiN1!a_#0&0GxYnC!D}A6KIW>e%y|k%(LNBYPOz z$J!(NLwF*4M*Fx|+VrrFtU!jfuQ{wq;yh+oEGj!ltl|0Vmi_Tbz-WK3R12}4vHz-F z9LcK0(K6Rf$tM!eNykGEF-~&@wxOOD(isofM{ddGb%wEq@4nX~foVn8 zT3xXoMcvq!#8zm{(aKPJEfKi%Hk!|G010tA64O*&oAAP7de+YqG5}&dNi%9WUpMHC zEbMoArL0m?nAK5c_ssn_a*cu#6D!vZG`h*2%Qy;kH9uZn9?okdE9?<9vOQv8&RGW6 zeIJ0 zIE>Fbi^IT0X{KHIoF#}8h0HW61j9gg-gaqV+K0neW62Znaf<6 zi28_gQna6q*+-xJw%*3AD9v4b-xyNeWJOkxVi5hQt#vRGuQDnY@TJl8ZIcv_%Rr*q z)%(%k8PoaUG5NoG{@7npr{td_G}^xX=7+TnWD$dWd>yeEuE>Y?bnH84z~XcDjF++R zxR3_4(Z^0gL{vzr*RfuG0y4X*_G#3zkxe#q$I*AM{-jS{wJM~Je6n8Kh*1M1a6S8c zZrJ{3#5yy!T+dpSSrdcQtz11EY0{C{g-yfyH_5=V&6LE9q~*V1kpX`+%D+nq6X8f%5rsdcyDIzo*| zUs|VgkoH zRNQ6)HvC`NKK6`%vTd~_?P@Z zupIwmj=m`It7kih?(vM^Ar98ePmI9ieFi+azH2-addDG_5-K7?lGS2w8aih$vBqCh z#mDV3$2n#EIF-W^t?#b^HEMvxxXx|uwZ`7-QRdSFHdwMdGd@254tp)`GaioTD-@;L z`i{)WYn0dJq8-Ve*72Es+ABRNu?(`z!`vD)qcv~CF_zP|m8&tit@9|Xz$5X>c8=H( z0sXr)@S|oq$!O1vWHukit%Fu$xIOmLKNYQrKt7o83TMyvLsD$5xv%FQjHPSDlllPA zYy8cQrx{CU8rSFJ_nf7K%C#-l=rJBwai;xkn#7j0C)S)Z_x<(a%+bw^3a?YfHC=JE z*RHH@_g*Hk;q7q>^yME2D~ry z$xGt;FvpS^8*Ur09s1MwlPIvjJ`ZR6-7`ViZDfWcgNWFC&ZKGGvpWd5l3$_mrnk?4 z%l*B<*Nai#;D_>#v6j%eHj|wvub+Uj^!(&&1>WPw5L28rp>`=iwa2Vgp+_yzPZ%%U zPu9goOSV^q)8m-O)rgDtOGd0=D!23}`gO8|wOEGwg3?0#yBC-%%=fQ~F=klI!l*%W zQAR%=Qv@PP^C}-t*|Q?)tX=J;Qv~GP5&o2(e^-A#VdU@roA_b04vRm)58zUW1%9ItG6O5FE;&*b5qY^~6B*k^NCRF0Uve&dN)O0Q{4z#7N{O^DHm zss0{NijZPn)~)@t7U#MU`d;K++!M9>6t>U(rmt~?OYKNY_N1n9mkVgdUml<`$Z>)T`HIX(Mb&e_}1I#T9y-b}!faZHguf;XJ!AGGSRnhB`E`6K_D~pz0zuVQ{ZDC`|+=iw{JhVfO zS#u*U@HjQ#NwZ+HbQ~i#ZCe>>O1akh+>X+BPufqPqc-`r<@p#;hEReinwmgaaP9o;+oV5S`)4wJk?qD946c&*|Yx=1vy+;so^; zJu2!>_FrS2fx|Xl=r!|&!F$T`MD;x6Nq&`E8zY73vs?q&$M2-s7$CE{C%Lj5*+Xp2 z)^XzVtpm)Jc!*_;#eNSo#Cs21f@gTm+hl=we$x9TdzPRci}WHR7p5^1)=wsFTOnhgKnx}g%DGgo`G~GP>Oh3U_rB)&trpgL5TA8( z`3*m?I~yfy(g$-&rco_<2l}`UsqZ6Ch-YJLi9NA~Hu!PYcs1Xl&3!8Y)G7C4tbteA z?Aq@S`Ixm8O<1+{e7H7B-W>6aK8b3!;`4~O_TFkEj z-!{ABUELvm*3~{zteed~;G@|%yLa|fj%le$vfX7bW2G6_tu%CH_QqK0sCj(w zdoc)nwC`*kO5aWFU`+GgJQrSB6-5~8r!0;G9g!(Xp3*bwbr!SDz4h9ZWX|5UXtlvI z>o~PYEEd}jqFzjIlqJ(!+!IDHGp3gsv*`=hA2z*o$+ITCv}LR3Nwr>jtxdd+`G{<2 zX71B-C_ZM5>lc&y-JC15J8JieZfoMR#5;L*z|k>1E@R62146qjN%-Oz zfb6pe=l9{6+q*LSYOh5ewUHzB^qquB_gyqjAr5LS@#!sK#9_K8Znnl5i*4KY@$0v+ zmT&S+V_Lf^i^6k;G0t%YzGp&Q#Kh7})@B}2v2EwP9LgKw<$b0QN2_rObC%{TCUO|& zxu5P?j38m%IYT)j*Ma0rEubAk#NO2L+kQks9TS!D>G3a{bBxXXP$9jSSF?83X4-SP z*)mhIB;SuX43A?WBiX1)QplpTpVsW5*Z7RggtycQAsL^Jj?stM8D+BPg@mL;Het>o z93@lMl3CUOBVIrHf{E{=R&EE$snIqTccVoIdm+UZhImyYEE{SYn3f` zqY$P-n^uOxnI>WTLEtB7<~cPOSS4VV1ML+_2>S_ZCba`iOtj>m?eN~tyEfRmU?RY1~D!E zYhQIvVJ~aIMvc!h=Yu5uY}MFcv6;`-_k>pWOXgGp*hqX~JKs;oy_~pb8CtCL-RQvKlOx4u%FO+4-Pf`kTlX*uC@BN$ui8vZ`ISs zSQmIm*bz~1MDHkw*m0KK0RE+TF$uGHV5}yq)?SY<#ovBs+iWw$`CV+Uw=H33-DJX& zp^u&=e_XcT6=P|7KBYB(rQh<(Qnq6|^&!O+URBEI8cCxMv%NxQ#FfagMK^9Ujwfk= z(Q3_oUGJ>uvJ@dpzh@_X##Uk+D}8|H_@RF^bxuEJX+}d?2zkROqkVtYF`8a!h0%YL!%seG?GV2jx|_k z)X7HLli!PwjgG90j9IEMDi_vOSZu_&fnHZ&T(uwBTbOAD{4g&1Dq9S7Z9f8fltL`@ z-^0cQFvRRxTv}r<8tRvJC@#kI3`tF9{l-=48~B#z#Xx{E)B@gW>R8-2xE|S!rHIUZ z_OJHwrivBVyS-62MwVuD;XP6kk*zEDv`qHOxfAho#Kq%`Yc`fl{QzV!|BN~Q8zW%R za-8(GQ-9kl_3Uluh&sMSl%8kux#L8SnTkVWY~usc;^VeA!igfQbA{^`d2!<&W1Pcu zTZi|OYsWdlUmGWgB+eF}6JqBWTCr*U0N7Lys(my(ja{)?qIc{*SFdg1kYXQUybpUl zR-f;S8Pp6JvXA?o<|m42#--nBWsJ1os5Wg@!??ldhqK<-z?S1Yl=jU~r_ z1N%^qG3(I<;}6j@%{a!~x|T7fG&#m--xw3UHu{%wW}gmY%z8ZB&9?lfVUH7H&19>D z-OC@uyXC95≥paE!SMi;WolJCq&$&*f}Pf;KRIfCasLgB1}b|v{PbluKnw|hgJNJ z6FIbxGffMp)|hK{G}(8OPq>E6C)^G(;z++SFwuvA3*%<4srneDmUD32OcP|QrEHwH zQfrir2$}l)sk;a3kfqRAvM&7A5qa$#OV50VW;K2!zfmrU0SesM=n(Rgiy8e$63ZqJ zfgdRIu#2|F_7 z?fTq}WBcxQ>DuMmNwnq`55^yA$EUFOZrK;apg$9U^^6XCVCzX*#1q+pG>+&AK1?4d zsiTZMyvib~-*5Bvl9AQDA!)m`uNK=<^Gu#{%@doF#wp(auOjB={f4+=%Z#--g0{6t zQ+#9O3~%^MJPW(q(P6)7rH6Fv_q?5tB}x;;NrWiLnfwKt4#QEJ687WQZ`u*3sts zdfnu=BNhgWf*&ISl!)tn$6oL|Wdx2`!U*5z1=F$ju$^Rc8QOk((0JFHntCwFqW#I% z+{PUBQLaa?qs>gm-otx(KC8!ey2ew-c1Ow>GuY3uuFPt!uN$1_1hm9`|YlpkIOy2&b%H@&Xf{L&KA+GMo_&yy01|| zCdkESqj&{nWM@Mgi8+{*MaEqFj@{$JVa86qkO9dMb7*i7`)YV^*{bWH?9cjn=jbzg z$}UBKcs!0y>lNdu;VeP}H0LTA?=$`Sh-^c6QU9P-_sM~%-mr(#+Usw@Q5PN0l**1g zMmO$@Qlh~ge6?B-yIS?E*&Sg&#beMPpTV2_^e!1D>oE$%7VQ`d{eDb+$FrUTC?0$a#?F0wLs>294~GsJsVFkX5qPwUsq4$y~JIw6~y(J zmPN4savgxokyy|fRe9UO0GHWJ5( zE&tG}0g-D|B8xTcz&1Dvv29t8`$n=6f1(1Cm<6NR=CcTczg zUz?WVwhLt3CQ8J@W=!dQXA7?|tD>A<6TOSIC}J|F?ZgsnF={5Z&5}yA4R60*L*Lxw zo7E_8QL-eFwQsscjaf}`I9T@uBUY|DDGd`snUB9e zZ_J_~WJ~Rl7g)8|&2JQvE!sKr<@-=H%CGlyMfoRSd(N# zKXYJL<2SOlj?GA-V{LjqnQ_o;&#{tU@+{2Jo9#cYwqLKYlI0W6wQrIg8+9Sp z(B@!K^Y)AIEuRpNU3{6R*|$TV!hDWaNmNXYRf;^G4c?*X@++&2u?ZiuE4P{0%aW;H zzu(Af7M6g3Plc0g35b zJxau%jWTLKYmUi#+Lhg<9uqQI97d0s_b8Ci+Qplh%t!DR3-aOCsn}yy>;9Yd;S-+y zl>DgEYE8C>-4P8rAHov*0>xhB4ctKQm^B`QWD|6gkH!em?J{9CpGnryV-2#3G#&*< z_4-D?m9jxdVHlis9%3tsUDSZtBF~$Dm|qraE;uF()+fa>xWMdm!`|#(=D-||Sje(s z6uDqc#A68=%h-p<5-;5=@n9k9MA)Jz@MHIz!3Z)D3GgslMh;{2WUFRdWGw z_5r*=rVH@SLG5>~CsB5 zJ>_+~!iB4NIsUn?JqO=r=(lTok|5Vk zjE>=CC6tG?Col7TwMadYKMKxmd?KR_d32$^s-dq5+lL}UDx)b z`{4uj6W@jFwYI#+EX&z2tkfcKI&NoQ7&30aC}0?e8X2W%RO5@|i;*7HFi`Jmmlzz= zsNUTE!7Hw^xPzQHePq_OmjNI5aZJOGM_aeZ*ToKXl-bVUbAl)ifk)QBDMw?0r2NYjGtbjw8ez*mcYD z+^#a|ZTyq&w=3>USeuXqDJqtHD%uFE@)|R10Mq^*JZ?p4XbbgQ4pa20$3jt-)Zb?O z_Qp#ROO28vhB2Zso5L|8>PBY)&s$^U%HG;nqOqdJqu$lmg9X(jB-GM43NlNKWHfs_ zUx`3#WbNANDytaj$Hj?V){ob9=qYh3qi zVPEX;glw18m~#z>~+N);EH9Fz@r1Lxizs&Z&N>2jix=X0$FC zsr6)uV2r$)pIH24Ea{$^gC}X%a_GvuO1f^W7fk3;hIBoSafHXxlU $)oI0c1dfZ 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 V{TCfK{X^FLzS3Lh?%ylE{S(xWdG`PS literal 0 HcmV?d00001 diff --git a/src/front/static/css/style.css b/src/front/static/css/style.css index 09f3bdb..e189baa 100644 --- a/src/front/static/css/style.css +++ b/src/front/static/css/style.css @@ -1,8 +1,49 @@ @import "tailwindcss"; +@font-face { + font-family: Kubasta; + src: url('../assets/fonts/Kubasta.otf') format("opentype"); +} + @source inline("space-y-{18,46,102,214,438,886,1782,3574,7158,14326,28662,57334,114678,229366,458742,917494}"); @source inline("mt-{28,56,84,112}"); -/*@theme { - --color-accent-500: #f55151; -}*/ +@theme { + --shadow-2x1: 2px 2px 0px black; + /* + --color-kanel-700: #ac5c24; + */ +} + +.default-border { + @apply border-2 + border-t-neutral-100 border-l-neutral-100 border-r-neutral-400 border-b-neutral-400 + dark:border-t-neutral-500 dark:border-l-neutral-500 dark:border-r-neutral-700 dark:border-b-neutral-700 + ; +} + +.reverse-border { + @apply border-2 + border-t-neutral-400 border-l-neutral-400 border-r-neutral-100 border-b-neutral-100 + dark:border-t-neutral-700 dark:border-l-neutral-700 dark:border-r-neutral-500 dark:border-b-neutral-500 + ; +} + +.input-border { + @apply border-2 + border-t-neutral-950 border-l-neutral-950 border-r-neutral-200 border-b-neutral-200 + dark:border-t-neutral-950 dark:border-l-neutral-950 dark:border-r-neutral-600 dark:border-b-neutral-600 + ; +} + +.default-button { + @apply shadow-2x1 + bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-300 dark:bg-neutral-800 dark:hover:bg-neutral-700 dark:active:bg-neutral-700 + text-neutral-900 dark:text-white + px-4 py-2 + delay-0 duration-150 transition-colors + + border-2 border-t-neutral-100 dark:border-t-neutral-500 border-l-neutral-100 dark:border-l-neutral-500 border-r-neutral-400 dark:border-r-neutral-700 border-b-neutral-400 dark:border-b-neutral-700 + active:border-t-neutral-400 dark:active:border-t-neutral-700 active:border-l-neutral-400 dark:active:border-l-neutral-700 active:border-r-neutral-100 dark:active:border-r-neutral-500 active:border-b-neutral-100 dark:active:border-b-neutral-500 + ; +} diff --git a/src/front/static/ts/main.ts b/src/front/static/ts/main.ts index 0443d91..8c58b42 100644 --- a/src/front/static/ts/main.ts +++ b/src/front/static/ts/main.ts @@ -18,7 +18,7 @@ export async function isLogged(): boolean { button_dropdown.classList.add("text-neutral-900", "group-hover:text-neutral-700", "dark:text-white", "dark:group-hover:text-neutral-400"); const menu_div = dropdown.appendChild(document.createElement("div")); - menu_div.classList.add("float:right", "hidden", "absolute", "right-0", "bg-[#f9f9f9]", "min-w-[160px]", "shadow-lg", "z-10", "group-hover:block"); + menu_div.classList.add("float:right", "hidden", "absolute", "left-0", "bottom-full", "dark:bg-neutral-800", "dark:text-white", "min-w-[160px]", "shadow-lg", "z-10", "group-hover:block"); const profile_a = menu_div.appendChild(document.createElement("a")); const settings_a = menu_div.appendChild(document.createElement("a")); diff --git a/src/front/static/ts/views/Game.ts b/src/front/static/ts/views/Game.ts index 5988cc4..36cf348 100644 --- a/src/front/static/ts/views/Game.ts +++ b/src/front/static/ts/views/Game.ts @@ -14,19 +14,30 @@ export default class extends Aview { async getHTML() { return ` -
+
+
+ knl_meowscendence +
+ + + × +
+
+ + +
- - + +
- +
+
`; } @@ -153,6 +164,13 @@ export default class extends Aview { ctx.fillStyle = "black"; ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.strokeStyle = "white"; + ctx.beginPath(); + ctx.setLineDash([5, 10]); + ctx.moveTo(canvas.width / 2, 0); + ctx.lineTo(canvas.width / 2, canvas.height); + ctx.stroke(); + ctx.fillStyle = "white"; ctx.fillRect(paddleOffset, leftPaddleY, paddleWidth, paddleHeight); ctx.fillRect(canvas.width - paddleWidth - paddleOffset, rightPaddleY, paddleWidth, paddleHeight); @@ -161,13 +179,15 @@ export default class extends Aview { if (game_playing) ctx.fillRect(ballX, ballY, ballSize, ballSize); - ctx.font = "24px sans-serif"; - let text_score = `${p1_name} ${p1_score} - ${p2_score} ${p2_name}`; - ctx.fillText(text_score, canvas.width / 2 - (ctx.measureText(text_score).width / 2), 30); + ctx.font = "24px Kubasta"; + let text_score = `${p1_score} - ${p2_score}`; + ctx.fillText(text_score, canvas.width / 2 - (ctx.measureText(text_score).width / 2), 25); + ctx.fillText(p1_name, canvas.width / 4 - (ctx.measureText(p1_name).width / 2), 45); + ctx.fillText(p2_name, (canvas.width / 4 * 3) - (ctx.measureText(p2_name).width / 2), 45); if (match_over) { - ctx.font = "32px sans-serif"; + ctx.font = "32px Kubasta"; const winner = `${p1_score > p2_score ? p1_name : p2_name} won :D`; ctx.fillText(winner, canvas.width / 2 - (ctx.measureText(winner).width / 2), canvas.height / 2 + 16); document.getElementById("game-buttons").classList.remove("hidden"); @@ -184,12 +204,12 @@ export default class extends Aview { countdown--; countdownTimer = now; } - ctx.font = "48px sans-serif"; + ctx.font = "48px Kubasta"; ctx.fillText(countdown.toString(), canvas.width / 2 - 10, canvas.height / 2 + 24); } else if (countdown === 0) { - ctx.font = "48px sans-serif"; + ctx.font = "48px Kubasta"; ctx.fillText("Go!", canvas.width / 2 - 30, canvas.height / 2 + 24); setTimeout(() => { game_playing = true; @@ -240,7 +260,7 @@ export default class extends Aview { canvas = document.createElement("canvas"); canvas.id = "gameCanvas"; - canvas.classList.add("rounded-md"); + canvas.classList.add("reverse-border"); document.getElementById("main-div").prepend(canvas); diff --git a/src/front/static/ts/views/MainMenu.ts b/src/front/static/ts/views/MainMenu.ts index ce2946f..d6d70d8 100644 --- a/src/front/static/ts/views/MainMenu.ts +++ b/src/front/static/ts/views/MainMenu.ts @@ -9,13 +9,23 @@ export default class extends Aview { } async getHTML() { + //
return ` -
-

knl_meowscendence :D

-

i like pong

- - Pong - +
+
+ knl_meowscendence +
+ + + × +
+
+
+

i like pong

+ + Pong + +
`; } diff --git a/src/front/static/ts/views/PongMenu.ts b/src/front/static/ts/views/PongMenu.ts index 5b9eee7..91efa38 100644 --- a/src/front/static/ts/views/PongMenu.ts +++ b/src/front/static/ts/views/PongMenu.ts @@ -10,15 +10,25 @@ export default class extends Aview { async getHTML() { return ` -
-

pong is funny yay

-
- - local match - - - local tournament - +
+
+ pong_game.ts +
+ + + × +
+
+
+

pong is funny yay

+
`; diff --git a/src/front/static/ts/views/Profile.ts b/src/front/static/ts/views/Profile.ts index d81aba9..16fa93d 100644 --- a/src/front/static/ts/views/Profile.ts +++ b/src/front/static/ts/views/Profile.ts @@ -19,6 +19,31 @@ export default class extends Aview { } async run() { + const uuid = document.cookie.match(new RegExp('(^| )' + "uuid" + '=([^;]+)'))[2]; + const userdata_req = await fetch(`http://localhost:3002/users/${uuid}`, { + method: "GET", + credentials: "include", + }); + + if (userdata_req.status == 404) + { + console.error("invalid user"); + return ; + } + + let userdata = await userdata_req.json(); + + console.log(userdata_req); + const main = document.getElementById("main-window"); + const nametag = main.appendChild(document.createElement("span")); + + nametag.innerHTML = `Hiiiiii ${userdata.displayName} ! :D`; + nametag.classList.add("text-neutral-900", "dark:text-white"); + + const winrate = main.appendChild(document.createElement("div")); + + winrate.innerHTML = `wins: ${userdata.wins} | losses: ${userdata.losses} | winrate: ${userdata.wins / (userdata.wins + userdata.losses)}`; + winrate.classList.add("text-neutral-900", "dark:text-white"); } }