From e45380258b189ebee04d9494a85da22bf7c6ba17 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Thu, 12 Mar 2026 19:28:44 +0100 Subject: [PATCH 1/2] Feat: portfolio polish + font Danzza Light MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - App.svelte : classe active sur la slide courante - Portfolio : flèches PNG custom, pour le compteur, transition gallery mobile avec délai à l'entrée seulement - fonts.css : @font-face Danzza Light + classe .font-face-danzza-light corrigée Co-Authored-By: Claude Sonnet 4.6 --- assets/fonts/Danzza Light.otf | Bin 0 -> 44484 bytes src/App.svelte | 4 ++-- src/styles/fonts.css | 10 ++++++-- src/views/Portfolio.svelte | 44 +++++++++++++++++++++++++--------- 4 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 assets/fonts/Danzza Light.otf diff --git a/assets/fonts/Danzza Light.otf b/assets/fonts/Danzza Light.otf new file mode 100644 index 0000000000000000000000000000000000000000..7f14f9c9749b78cad369310210ee05833c1cc961 GIT binary patch literal 44484 zcmd43cR*A}*EoFdUG81Di>qN>RPgR1B1Ms|G#gE^Ar`QUl%*&FQZ1;&m}sJji6!>l zFd{{E5f!n;7JKZ`D8^_KV@Y-HI*a_y++7gg=Xt;H_x<;=?%tU*=bUM0X3m^*t|P{b z89^zi5=ut-L<}70^qTJUDMi^{rKsF52gQyU-7jnC8H)O{lA;8=L8Ifs3&$-Cqo~E{ z6lF7T#At87xbC~0D2j$JH8pugVve=pX(2^%?(kibu1idjeLC9!Wp(iFoelt-zvOw4 z{s+D;=`-?Y6@EN*4@E7QN>SFsQl-2H>?7aM@ znN%dS586XHQ8YoNxlF~5NeONH{7cDXzXF81;^FXN^Rr3c)RxPX)k9uJF$4;KKqtG> zq=hQZK>0E*Q{rSUlYSY%h@}`AWMoVT?MbneHS-xW4)R0IPkIU!N%I8Riu{=WDd??VdVOMW@Z$C75C z{@#|fjOsvzTGCdOEj7xLW~n~Z6ib=|_HY$}JEP32M@mw`7kOIK2ELZ@}!)O$^(pCst|rtfGUzo z1j;$^NrduYEwzk-@-(Udcq9V0FJSt>CjjI&h8hD@10mI#wr4Bac&Uaw;FS%$o!+C4 zrA7mU@M_I7U21!>gkRV~;Y9@kUMMvK+Atk>lK!PaOEQ6T5{!Ts)l2#YQT~t%{$JZO zkQyw}du@SIK!0SIYjH1N*_SO&oU+o-!knFrwg=g9xxk2aaVe3;J= z${RjK(#H!R=};>fue|qW(F^nV z35n82!Jq-H#qd z52t(3)93&?h7P79X**g)x2M&#J>7xsNOz(gXh+(g?oaFJWIBZorL&-ZTdEDEf<3Vd z97w3;QnfSN-Op?&G0^elQ1{UJ3U_TyEsS8k&A zP^HvmKQTM3^>R0Log(#6~q~6jpI-1U=2h(Is;8dXOsE$+= z$Uz#lfcl8~kXlH6LVZlFqc&4JscqDDN>9~NHPk`s5_N^TPFt*U*KuADvGhpbP+v=UO;b#GdYIdKxfjM==JnkI1aYZ+v%;e551B0pu5vv z)C%er-G>gOQ|WE=N_rh&44}j4UT`jPFcTx-__{;K(j)0{^muv#J&{hLcfe#7(NXl* zbT}PB=7io!htQMgv2+F;VvcY+cBV8`PmmZNkkdgR_i);Q1f+tjRMYe6Pw0>6xpWEr zF+Go7NH3y`DJ!ddz)6R(W+``=2X7ep`BW9@Gqfxk`mus>WCEG9%#Six*(%vyS)J^- z=3~uf&EHP#ogADrPR>rQPCiZ{PLWPIPP3gpbt>!9p^I~u1zlElS?A0+w{^C2c5v1> z_i&DOp6aaY_MK~VQxnwKh9bK_2(=Yzs-X^ptPFvgIzmlnm^-a%DuJ5*a#A^Ubn5Kn zfT)d14kHRidsnY2{N~gJ2Md0RXKbQFnTDl{E;+6G%1QX%+xa{o8jgsQzMn= znZwdk!n2eRI{5y-uDAc+tSx#9$PZZ=Q|YyI4y=y_urfSA!c*xHuu49Hb(2ZwgY?dW z@d~5eXjj^u?gNs~fF#>U>rw$LQv++$5v1DBBGv6-r4E%OdjvIvPJ`1ZU6SuKIMGH? zPhtHofED}+tl^JgeXWBPyjfbqwUV421U>K)tl=xLif>cj(@E4VSjR8PN~W5qA7C2g z)FRjuOF+w7Oev|=R6A-7=!0uP1N)j%QyVCIY9pnkc2S+EEtEj*04d&0Ie-+qP~T8p z;beBD_EFuaGFVIHa9UKriFp`Kr$ew`8>k-C5jgd#L2Ekzx?nvOL>-3}a1yk>Z{d_X zMfIglQ~f|r!>IFc0$rfOsqbKazX)g6O*oyd!U=nW>TwdPv1n52*3fBWfb` zn3_cWOichuPXaA4k@}6ANu=-q$$qbVx} z?gVt3)(RK_bT{^;jQwb1e@3*o!qK*}E4EevcuQw4^UWx>bEo}nI|~OsIM`X2W=D4e z4zRN;srE2C-C)H1V3fmQKO7CCG!@orCN&FW<#U+X%`lsLVAc#UJ131+<}e>KOPQ~jHOwYv2lEY6#TpuO^N@MM z{K+83C}U(cGPO*Qb(ML^ddY%i{bfbTWa zt7lekSf2fW?Z9eTSJspDXG7R9b}&1V9m|eqr?AQF3^t!#z<$cEWH+%}*xjswt!K}& zSJ^x4BlaaLax~YLbL4t(-dqqD!NqX#++;45%i`v6A99~^%ehtDI&L$!liSbfxf9%F z?mqX2oRZthJIcGs{pDfu;qr;{Ga1uDK}Yj*6pl2S@*CG zuBOw5lmGl*&dN13ssB#u!M%^)c~2rdIN63w)O z-fY-TlhNOV$S?%)=@!TA}PDZ0Vtiifu1I^-RLVN%7zqz(;hg)$7d zjF6beNM%u3X)zLNOe>@jX4WIp3$oG@a|>od#)QvU&zN;uv>fMBv(Hj4*Xo6HjqPd1da}9}JiJAF{%{--yge9fSm{Rf` z7bz=MBBe;vrG(TvDJ3`o1CcmRiZfTaKdI?LaP$#iWktlT1Z;B*fI&(X9=C4r6t{_d~nbvAzG9*aGv<$Dz?BvWbqlRXf*-vkU1DrB-d3n<^q#jLs z$1cO%hD?GWwJ=j^d1foxtX64VR$7*XkS$f3C6Q#Cd1SYq*j%Y3w-srwM3<(^ospQ8 zl9ZX}l?-r1G92Q8uEt2N0 zs97G0-Z3tcY9#D^diREJFjy4Q66drGyQL(dWn|6e64mT?Y-URpn302lO_+rCj_o_v z@4*5CB)klXUBWbJ_F{%bw!-6QmfX^w6N0Z6H==9C$iz#>LTjSll^HSds2lE#1_NMc12(nOP`BrV1k03=$b zhoG6Ko}|nxlpwb3@&w#G?Ihh=KuA8SAUE5*#37TIlarf0OEXlDvW(seVG#oHolqGag~xQUX%Z43}6p7f4dnTw<=Lxk&0} zONPi^a|Sp!CkZSM+VEapV%iKL0@;$5gtR#~n&fg}Kgt?I#9c}a1c8?lQZJh^rCJ6; z6QrUMS!R^c8MDmPMcL9*T0y;|%#X-1MY>E2FEb<}iYyfgGX~alNVi+D z8%QQt%1fhbPFX63eoJ|&tx^g`MtVv$29n*u&o?kC-@;lNUo*wK#_8TQfs9)#@`yyJ zxF}PXnlB|%vWv3FI*>92<_CdER@@d0bCm;I@-5`=(4-aDOm|;u`_(Q&Ct}#C`NR}llmaT&uMVaiO zRVOPCxGl_s+rl!d%T_n78mtg&!)jP}){mXWX0f^KPPUFc4!41ea2sfVdq4me&JE`B zxnk~f(EIDT3*0Tx_ZzsM64Ea*|K6$nLpuA3gLH?Wk zPq`>>0-fL4+6y%P5!Pd@$64oE7hA8f-VHi_z4b}!Gu9VC&;QkiwrOY6$;Qp5zs+Eq z(Kcgk5^M@>mfEZY-F}Bnsm*?yL!jZGwz+I`+or+hsg04h;uU;5Ud?ynUHAaL4`}(r z_*i}lKMgeeLjEIuDgOn(n%~Ip;4Ane{8|1w|B!#mzvPVyN@1-~DI5X?l#Sd_KQs|d z#BQiB&ekScp@GO53wR`aoUsNEgpV`Qppo!#MgkhBRjNlPBn()mt>Vf)`l`PE%)ago zj;9VDyfsg&o?TF|Y4)~ln>KCRHhWWn76sb>2TY;H zR-;Fa?sqfiw*u|6g0r)u9md3@4G0-hd0~bowSbK&y)_!qj)=W@?();{z0Nzd5gWrd z9(Sm}uPIxECpcqKR^Qe7mXX_Y$xwwJ)JyT<*ZA#B(vpyaFj+ z+@`;{b@iU230*$inrB4JW8<-;&F`W z_8!3$D@R|5v2lWGeuki`HwZWzyWzfgBA$rca6gm{EqnnjB;9Bq0J8?&fTo_9t6yA* z8mrMhz1@>qaa^sc4*g=(sj+8w%wUyPRcxA7E6$StbN4Ay-8wUUWVr^9!IRf#uwSg% z_Qf_wBzrs_b6Qnhzj#mVGGy3}Z8@5PRCZ?hrMx?isLu@~e}R~QKXC6wT9~g`_Ti+c zBTkOW={){09H$&hQQfbU_~B;<;pL<^0cYE*}!^*95@Zq=m3t3N?73f~nl(R(Rn?;Q6Mp^i znS-*49x|o2iSju7sEKxXnx-&%s`aK0@~I}3p_sjT@Y;b}j>zVEFHB)BC>V2C5&7`t zBJGrgY|pRm;x@<+M&Tyv_z$uPK|Jme6*Yb0RP8>bXO+wOJz{J&_n|ARm^ZJuq`)z= zU~{=*?l4|q3{sbxLX(gv$J6nrn_;ZiZd$h15y|iMb9N5xhvnEd>fVcwwFwJZuP<+7 z8{`j_Tt{}#kv!lZ?72*hF~BNgtT)mhy-Gy>aTo5>>v z448Zt*&v%kXK!hhCBijWi1A!pih!c*ThfZTiM(RzdSl>vT2UwlS1Htqrej=e!uXKg z8U<1n>y4pBP!L;$_7~Cj3^Jrd-fHo1Vq=`)l^phQN0f*cuqQb@2W>>7P&7M|Q=D3Q zj2DkyP@AH~K{+$UXj3%4{#ivDi|%q;x3cI5d0GXlRAVR4F1Q2k_^bcUJ5U@>YxH$&o(_MBkX4*i)QBZI(ji{K}k#Y)DSR(K8OH z7WJ-D6fO{;xr+J|#sC_9UnLXoqjGh<9M8getZ34iOpru*>^M1^hi9>SIHlMDcGGd3 zsRQh$iVy!_vrVxEG>cR05%6reqHrFsz};B|%2SJlqvZGxQz4s#On68w8uCmpH;uMe z{ff?teOXgqxzb*=;_xt2TNcd`+p4Qfe)uC!(Kk|1Y%Mg#EfEwstLCTfT*xY>2+vUP zY+hBT_)KVOdbMh9(Jo%$#VhCV6(|NKsR+lgii14rZdb*_q7xN`C|)o6E9fU;zD&F< zx~NV0Xeyf^7enwM6MRXMKwvu{{e=E*f251`~zva)pH~{y`2Cs9Y?ZMZtN3;_uYE zmm3@u;khHncss&&?ovY03ZtL8+%#RTx{7^j<*G^~7u(43&PGr6FsCd&AxD!+$I zs9%2n{pv4>*D8?*8iYKc-^v+MJFP5F2# ztAkO62joJ~AQ)Vnh=#D^-&0@nXrN-NfWI_-p#G4D z-R|QgRM_ZQYxI-@R^KY*UTIfbRak{4!4FLBb2LeTl(413ijphl>P6dXw6Ta*(A5UT zW7)$SYA@KbJ9+<&JNOQoFfvt(;;yQZ>^h8=0u}(iZAw75rPcA9n1FwiE9r9vwBH~D zfqA4yHF||OI$QoBh;QcBF@mB9=3WuU!>`>^qnGNwq7SdMt2T)0GF7=k^i!WP`NeVy zF_*(1;lr!~^OZisrw_DN6!A!AP^b%M&n_(7G<)mTO`EoEoxQ10tC)o6z`nH~&0!V2 z??(S!sZp$t75zYnViTcxYQ+j34jo)4-vxrTAD8LSd^z?t*|7&XWm3+t@dNwwFevdA zNKvK0VN0t-t15+_*C_TQpK|(WIsD2{phA5SErtVbEMCkiYei+POz~r_7+kB+7GNj# z2&c+fgSsfDMhfV&B0I$_L0Py|Zo-RPmBRFgk73hvKgKe@-t4@7MwGbgu#*n4bQMGSFYrE5PIL4$%W^ zz^A>I@&HfDCaOE!Pc~9D^m_2Q*McAY5O`O%P(A4FlqbE7>Ir_Q9pKa2O)Uejnm1ia ze?#vB57%MvCm#VXRvmSest0dO8F+V&QD1<^Z4-EZ{OJn1oUWt-=mXSo+CbNUw?1*^Y>PztEMbfvyFLZ;x z2_B{>@DJUC*oG_g9r_3G>s_NCfG_e#`abwIqrr3Z6a9$(nHo$#q#MA;`3wD&`ii2=F?+rvIY<2LC3BANUs{ zAbz0k(IWWWRzf7iDu}4q4xZA{;FB}bZ>TZ!Tk1!+DmKxL)N0y9#W6DQSy?f(=`xF z2|QmNn9krowS)MM_TWFYhbWJZ;5&6-oEd>}0>4-nM$5P|-53|9D|lBogGY5KwHzWR z_JGICom$JdfmbviJiu)r%83EbofUXubHVF67rcn+;1`|-e!S`6&1(mq%NG#EFbQtF zeZY%K;^dS}cZh@elRw#6U{_1k>C#uVFr%5V;3z$#`n^CkEuSAvIf1+#(K%xq!SgQs#GvyoW~ z{>t6VPG&o^mD$B?WA-qmATwZWu!0G81yP?2Q}r3O3rr3@!3kUe!qNc-KODN1&Rk%g zG0$aovi35q%ttm*7B5Se&6ll^?U2>Tez&r*>In|YudL2m{msf*7j`N;6Worg*yp|upZ|3*&C-@uu3;vDb1BII+M6p+KTyauy!g5yVUN%2l5X>KiF;OVmHNZn%!Kx zrFNU_s_n34Yb&-0Nx>o(d zUS{9P-qF6NeVF}t`x*A1+HbV4w*RSvLx;!?sU5!Pu(HFp4*NQs=y12gFCCgXdUyQ1 zvX@I{(!9wU91M6TT8oYm}Nnns`l)X0c|M<~z+Jji`0iPSO@@_i1lye|2IY zC@0Wqq|*|o)lQ{O^-kBEes=n^ixq_B^yo6S%gioox}1T)oFwN;=f9l)>FV8eYuBo- zXS&|$`n;>?V(Vh>;^7kFGSp>~OR>urF56woT~4}Oba~+NsvFglilmwPrKjr=;85+$5xMOkFy>R!5Y!Idqnqy z?wQ@^c3;;0K@aa9(LEA-tnYEX$ITwMd;IQ6d3N;d=^5r3@0sOU?76~oyJxlMDbH)3 zH#~29-t9TIXGPDOJ)igd$4lnb*=wZN5^rm7M{jTM5#CRHzVzAXbHL}VucPl6-_^eN z{MP&Z?9cmm@E80&{X_l7_$T}4`j_~B;=kH|xBp@P)BgAUU->1-c*w<&TOp4^eh+C3Z6B%$?HxKWG&XcX zs4jGF=;xu^L+eBD_u>0=?-SW4vCon|b$uT8Y3kdpZ+zd&{W|p<)i0%ANx#kguJrr2 zf7||^{bTws=)bN1iT=M0Xfq&dfMI|*;LQNjfVW|`VGdy)VLifnhIxmDh7Agf4@(Wp z3p*FC4o?lQ3%?TnWB9{}$q@+=i4n;Wx`?!hjEG$kdm{Em?8AA=I9^h|?iju7dkCsu zhYA}7gnW7QN8P#Xdo@C#nZ%o~wY08Zl$hpqs7g__M;oWubA;XkJ{{xW~e$W^1-^ zWyW66zU)vAQNmOYpso0XF_JyJZolEU1F^mkYfSw9#KZG6_(Wsm`&KCY)>x?~_L$c8 z84X%vI<3ZUIn_&YA!cD5h|*-&L~Wc>+lyB{M4!HqbrHniw=&X>S3`v#@U#PHTsm(j z?yUwr`Aw5}CPsljxHF5-AGRc{JLXGAN#$%>nTO4VRMfy>f6Ysk1(W=DyU5CzIad?AcR;C{I{wpUPeT(B0;kWB1h)Vc6w{4P+*YY)MF;14m(msed~KU0EMH3K7k z1l84VBp}jMNt7SE2}`hspq+XG0JQCiO!V;JKgX^vJo24uNYWd-7zll(*khL(NB@WU zj~PMCfBN+-@`=Npi1`oC#9bt_S3GjSAt-%ewSYRVKy9zrBlk{8>seJL?lKMoot>ld z-=zj4qu;|53z9S_(E@aQA{Wi$iJ!5`eu5dnP-R9zzxoI`K2hBm_doH5kvqS5-011e z4-*WiJFx&ff%UK|hycnf_VATU0AY}{5Prlt5*l!op}&0uv`)f8UIZX|!Frg7#}bU| zPxkONWGTo{9;}3pIH4Jev;eyfX4((UFiVv+usl*EWXRR>GNbub31VUS|r_g zYsDJ*6nh*5_uwG8(&W6Je^M)Ju~7n`M!KSXUVQ|>uF|9t!_g>ta@NGjBVeBT3nu4u zfe>}{<*OSPOcG38;$Z`(bqAi*{(L}&3M9e9?cZ8MQP+5~{n9@J`b0NjTjMK$Imh$A zJfWvODXT4eB3t7s^le0DOn?$ZD-V8~1TxoiW00`Cxtc#K=%;|Oo5&g(*0=}goKAv8 z=s2;Ob_1&^mH#vilKGFKrMzq>*&~tct!$EjFM?SXCDnqZWx2%?Yud_L%&+jkW28*aC3ohT@`fce|y_Cx{K;)%V4V7OL$!YropN-4QS z8Z>)f-q0AYHhO{)LhPrPlQMA;>O=7G4sntCB_>?t01sXddD`FlHxY_sP zAy34B2YVnOvt2JwvWEBee^v9s>Bwud%T6s z;{oo010@XDCV==8Hvwy`2!;71i6HwX3J1@?1y{ipyGoo<(;z{0=R?97s$oV#W~8~A zOBKN5swBd_21D^&!zYEtP{Z6Jv+;7HadD{-!>KakV%Q@i`jq-QHhWiGtGq4^(uVl3 zr#aQeljqq9=k8`bb!_$|{-OJI$YrhR9$u$bl{NbeZ(q%wdQxMGG|gdE8^?S*?cP%d zbOYa0_mA3nFitB*iF4Q!Bg^{uI5ayQHOhlLQ8Q`}HBrmWWB5h#ZF15!q1$8_RSzFy zKWMeF?Oel5%N{?I?1V-&@pqI1bBS@=Sy^DT27DBQTT zx$K1Y9+vIj-51g9qbv2Vk&Q#M`&IL<1x{0ZB1UTQP_%*_!=Wj7A3I~hsJStY|LKms zBekd}w8$9e$19J6{TW&Td34d2$HNmP7+DJh^dp?-LkZ}Pv`egoQ=GshQZV&i>m^L% z=>q~BwMJc6UO7!taSjMDq$cz$2((GA7OB4k+bZH6luO}Q)I)Xe zda#Qee8EB&u;hD!>#PK}gXKog<$@9*$fQRb%s{jsluT4;w)^4@I5P=lVpAW+uplaAqN`nX!oUqq;S8s>;mS;_u7)%_;)WMURc8$-Hmb1LardfnTF0MIs*`ntu?%u1jlR@_9B2^Ktp;) zR{C!+n|nY<8isol8uSn}p&dX2$ z(eU*bkpr@I0O!RKVj3pSNLXw>NG>TFvx^uCn!UtO zKrSX47=$cmp?2xXjAX%XwXw4*2bt_qJvf3Ua-ijwHfr!5qlTTpp?bI}D31yB>Nf#0 zW2(I;e~frgq^!6IMt1|82Lwpe0)iu+h9O=CnhXJg27rE)v`~?U5q5+7*n14ZVW{Uz z4D{>y)y9r8)QC)KREA!F9}O?Z=kaoM9+IdGzrcsE33f_wv)x4-@m)wN*RAKlD=S04 zp@Sj(x^zLx{NT$UGfjfLq?VvCvtEL-Kru1hc!vhp!NnFd(sV*9b_bQlbTNdl5$IZR zolLATdJlmNXvk6?eGC2F7b=0^4gwhHdl2AC3345}`Z;LUhe5Oc5>Fb!kBk(Gi!9!S zGPF%hAOQ@MAb_FFjo-kddOu<1i0*=f^{fK$4lLmhmZ>UA#P&US?1i%ldO``{SCqJ! znW4PO%>u&iaPNt=P$K#sklwiW;NDe2i^jSLexTd5CWX54!}+<*bs@)!&4M^kJOvt; zubYKUgCthfhFe6c9s;N1XuB~tK==$Vl6V~_%{Xpp#!GUZR2!Nog?TNgl5dx(D2fmb zF?Q`D{DjA;RpkSq4O0e4bV)p9ztE}8UM@Xv_IYWQ)5!|)AI3|=gsQ5K=~cJImE(A= zs$wy(0spof{M)MANxZkPs@Gl~Z$y*l3uyw>js7-(lYP6G;LNLLjp9|c?tB_?&28pU zg`covge%FCLEX26-)Mk6_n6qG2d_E`ZmVn{nFl0C2?>g=1QO9*ScYQ>%}p|z-@$0s z8dS&7a2KI3>=nFf0pK5dSH;|LzCfztRmEmr9Ap_vLVwgUjficsg6)6l8m9MuH-j74rq!AO&!o+)-qb8`)jM~4WQA?A!Ah! zV}x{O{|GH!kjC~X9-bKFpn4E}dgQ;qJ~TW! zsafr@m+vd~Qzys=fFoKMKI)s(NB31Wtko#d$s;^^ZXiw{V|S2S&jI7ZQ?x&34$y}< zx`&Ss&eR^5&wjV_70 z+&yA~hX84i2a-MMC#)V}22_&#@gU(Fa~@`&0N%I@%W-IXrK6|55E|D z19WaxYUQUqj5^#Wc5hSv?-5EChkpAfU6I4b)xxvY7tif}*a^a#RF$&@=oUB{p<9%y zSX@H~ zIgb=G1YGXX!mJ#a6*e;ihv7dJX{d{ZS&eu`Jg2T04qDtliE>qqGtNpwSvcL|G={|t z4EKoVI8_avWjZil2t2|Q0RiNXJFi$NfWe}?Mkd<9M%E2y6JTY% zfa-&U{eUryNbHO&v_ zXGwfsRn!Y>YuZ-JJM9X@Mm2FokZ_XaqFi6O^uQkw5Iz!wK8t4!=7gt!DEwc3Rf- zlnF!mQ`-!++fS#g?HD3_UZpn6rCCgs_{e919e93W&hDV^jic1Lt60^qeFTWIz`X~- zJ!AJmR++%t>7|K%PWGejyz2fsP~!sm1Ri#EyH^W;hI{gd6KF zY;AM|SV$fmHTUca?`<(`y+;)9%`RYYjxiZ6e9XMR4d<6PvxdV_VzFKlsv)LRfEkp> zlM|0_YSOn@B?_OW!TDFvY?W9`wrs>Sb|s8!%+Ypq3GC6bSK>nTj?J5P?3lGVFK_m& zyu3}bcWBERJA&?IeXls;b4X_Iaq@AnwUi;6p7Y*MUFUI^T1(8h|QY?v3a!y z!Q}lOCc&#j&QkPV4q#LQMz{Ach>%IlQea?k!aGiWTgM7YKk521R=}=}9eTkmtmh%h z=_>(7KOHt=8M5`|4}gYd4$x4V>>*xegR}|VgL=OLt1PmgL9kB{?5~84#14R;!kyqd zV%LDttZM);>LhA638oOBPAEc~i|8MK^#ajXeMpYENETg7#J|fi8^unRBla4LuNu%Z zFi{+Zs148#?itW6@=tZ&*aM`mfB#AS)3x8{#~kx=9565;Iu-WG4}UkuEzRK|&_VIw z`r{|(#&*%*4F)tvF6Ez|9p@zFH_1`Qfb(ud@QaH;qVEuiUI;owB3$W-+!DAsJn25V z?I)CvfWkT`yx&q-31s)tk3qtb_sTNY@en~KF_o4H(A@{R=Rh~N(Y2S5X_*#?$F!i; zSn4hZw3^nDpSal=QV3I8GfNO@OB|@Vd6Eit&(PHL+N^@Lv8WICO3-9UeYjtOZ1FhK z@DkGU64La=LY_blM|BszNI=K@gta3e2_a3eV;h$627^rO0PCp-sGbB2yENd#E{$WY zNS^G{*I}3b9%e4yMF@s%LSj@L&d(-{fM<3rKgrDVRYjg4MoX)xmz%^6@+smh_4F+X z5$wiky48t}(s|i2q$2X{RPBU5Wkq%O*y3+0K04rtoSyxQI{c7vb##puKgFZf$oA2_ z*Jb-YnzvhnQ}HkCLdM6Srgi~62hK5jN!NMf*ZR0{?K?U&O>;lJ?@3p4OD&;#f80HJzg!zy zad-49P;l@9JWB1<9JKuU^`lUT)3SvYXwipg*89iFR6Mm1=_U|$*R0_@N7rCBd?O|h z3BFGv?;3r-0gdiCav%XuL}8Lbo!Fy1vXwL(Gm9$Gxe6^MYYP+#^Pc{;_c#1%0q_(O zUi`bN%(}vJ=>lR7{j$R!ND;~puOB{JriG;j8@SQetZY9|;+qw97F&^UG$~AtMhpp4 z(<-xgXgh4BYtb8Vj9PVWo1iLP_{6;QKH^m8w(@`iiWkAUh-Uc-s*NZ#g9lip8MGjX zfCgpo_)}@)nQviu(ai8?V0fby!=JbEc$w*+UP3*;MnJR0gl>Yeo>Tz2uZRSj^Oca@ z5CjT{lm*F!{4ICkV;l&Hoz4j{hIy;Z?JCkG?ea_m3>L zlUias`TNVWXD&EEWnej((9+noWZh4b;-tYw0&&v!YSGPu>xpG;J~~8VrR{@yVoGb; zP%Cbb-#>c~QGXpB7!{M$2g^0Xl3sAC!++n7>^>mT8>_~|@7$KJ%}r->_MV@4!4bJ# z{^!ph$Nl6C9=Q73wOh{BIjH8p?DGTWHOgQCf6>(R2MPXeqUV)RVES%Dj)_1qR=rnH zo)rUaNf?~KOynG60BCV@e|NU(*`w^+#w}I9U<7YVwAgp1~odqD}iB0 z1u*Jx_uJ$mJU1Ch(f#+>p+n(3>fgc+hk@3(S`3$=FHxZy4Tf;VI1a2Q!?70{4oNf^ zXW>{}$e!R(FBFe@!Al}1IOWHLC|d^Ef>7aONz0V-oBf1Ajl~26iX)Bepe-^K;v(Qa zjX%7Hm=w-;u^@uhDbYT57Xlhhp~8NF-XeO*#9m_H5XjsDEtBNYhcFH^+$2z?8S+(- zfN~^ALj#S5!nL!2+;h+vJa&i>TL4OX!!U#DUojb0E&dLM7h^ZULXCz-K$~ zQ7-?V^nh?55S}-`I)PUscXG6PyeDw!xY!3MBlvVeQT z0$u}L)&Q4KsAdfW!KyaEnn%z63-M|LS_kyNpyZ7w;ZR~>v5v4P0UjGl-ZiBe7Fq&~ zSARxYwN7GRLijI%aa(6F58dk$e_mXgW{f-miZh--(brL6OToGj%Sd?xV8Q=(m z`x4x+mcfOocmUj9wls?{lOQduplNbtZvn4*r}o7X#nSFq17gT~IGsQu#@M&K`cp9g zRCDPCoLK_)MDpRh7__wNYL#ePg&O~epSk`}3-4xZ zQdi+dom^Q0?>ji_>7%t`2$)sR4CGB#U}ANIbTm|%E($uX=$X!)0`FY4oPK1mDu=YG`y-C_%9_`Vi2R zMer||l1O<}Rz&}5XrfsXE+4~};VSi1K}-_+dI>9*B8{#}yif!}BDOWCX2rn8#Ebyv zTLIE!!m_V*1C?#oM2L!zu#s~am?;bfbjJWn#dV{v55zWHG1UT7)%<3fdO|aQB9Hqb zREkcOE&waiK2*CCu0PX^Q`OD`d-v>dwbwtFPgU1#*RJf(ZiTm+(9eZ()t!&}vq$nr zS4TU3o~3?pW^iCY?BJk)QCAv%{PxOES|yG#^P_>=p?xxx4a}S(LfqZ1hrIsx`u$fg zBkp(6W?9|87~|_RBqk(y$hoIaE}r`l2=l~oMQCRcyf&aOq2Ml`C7w`!f!x?c?hEXW z?d}w&f!Jbo_|`OJcV`K9V-4IA@Iu=4+ggFuH<0>zA-qN7xkA_rLu*qi)MwUZ7}9Xh zz8yE~P{^YT!)r%;6WFPQM;%8Zd(8Z+Ma;LetMCUyri<0n=Cq~Y z|EM%}w#UT(F_y!`>{@;|ftM0S;&w>H-d%LGbB<9q=$5;ELN|kExnebXbpv1I>3g5xhL)fa0+`3c*<# z&`99qt`#@K_5unFya?tI=F=_u9J11&&l4M+4QQ);a`~z3D~`{u)LpLD66FTo-1)Qk zz>-37Gq}yB)uKUQFEGl)&G61ebrNy_2{CO3j%bj{2SjFI{pg$9)_lJ4h-Q8zJ3nc` z;<=7-S%xE8(G!%wa;$h0K`#|QkR3K&RKp8&4R0eLqzw#UXcBU#pCES`3POLVlQS}s zllNy-SMT3nU7fK%S*tWnEPjmUJf^GRT@BF@Ue>_hTV)ESLEy_;Os{?+tHIhz0lO6w zj7yI%trC!zy%)q{*k=kD6+brGLSVq-rlz_Q>M#to7aFTxA+CUPdxdEQt7_PSm1=?r zw;7}D<9C>pssTA{1WhBS(N=weTLdJ@obpFlZCQFWPLFg&bh)vuOss?Wi*lp`JtZCM zSiFI2m4Qux=ceItEN+{GtdGL|0ls#6tl-MfI2N_jbEYT==-Ob$*}zF%rK?wg+KSMb z$MloOGUOm?Nc&uhAB%tM?e-o-+~Xlll>5Gqo2Zpz=0eyGT1ZrUm!VyIX%BwP{_yFU z+pirFQ$IKg?4oHKw&Nmg4VMF#*BLWWq{Gh<4cI}W`sd@u&JtJrv0nW9vEANU)E0*5 z_^?aBy4oKJ2jQgs2Ys@UCy2=9!rzay316{&K9BA1MjX{jh!#PvD?w+J;AoIkkb{;l6OikkWiVpD6a4jP zfec}E1&o$kXR)ySkD)ULuB9BPlZY^Nm6$LWX>7Ht?yDjNH`px27A59kOWd+ zbx?S9=pdYJmy92)^+ociX_JS;YmM@VtiqU2HBs_&pOzLzH~?UH+2m`QE&6%f)WRKg zT9hEaKBFRby=J-m%=*0**Bt;*w{=GiTuXrCU$qAh$#xpc)k*8*HCyv0XmNr(VsF}+ zV$EWCZ1IdVV3;7EP?$GWGcRcicdhKuc`ceMzh1ia+~=BW@|e%FwgSVc^7GRUMFB$u zO@sz6CJn@0-&&)tdJkg_v>ggiTPW!RHQ}yFFB)q+l2BJzu^W8fSktc{bfuJ(D6uLI z`(S?u?0*9LAjoRYaPZ1x+ufVT2S|j&;R#tFgm)iR zCy9f?WHrjw@MioPv>0A95+}moqQ&sq-$YO)#EBB{jlJwm4gtQk2jH9EC17XH zP6q!i8v%DVz63ayA)_AlnFg5{f{f7D2AH5V63omMV5W%x1Fi(o%oTud?Ewf}39y+f zfPpKS;otkCIrNt(RaVviBOd=Q9)avp$UZl2Q|}a>+wUZzDe3{b1)#@8{YSiMh8gRg z1xX12f>3@>c16@5f+aE|#F7mmIWT<+%6w(+2mua~3kEPH!Ro9PkBY<8sykVw(a~&q zQrxy-j>F;#(v!5R+UUz!Syu+JnMt$9j&c~iaopY{&EUbMSr;#|snsX*FFIa4xxKPl zdvQo<>EKK3Uj4@UQx4zGK9;H1sP5pHI`umP(>tS+R{08jS%o@)qU31jBMK5=wr z6MgZ<97z2^j`#wwGX+Kr!tHiz4czJ3Yk&V0QQJTj=;ElVeRBC0vdPgVa*69d!&WYi zP?7C?cyCbSsJwuAN!YT>NVX*j+HFi>Bo|Ia+}|b_mL9UNnm1V1l+J z$;Ba7fJcy)sLyCMLwF^oHv&uh~@&?t0<7kv|(kfmx_Bi@$ky?6@wVsn+ zYlSjXw@me5LACEVdXBHJ;&oPo;g;}rDSr|r8C3fk2&oz?W;%swRVpfMmlJ|l@OQnw zse!VaGhbtcMm3OH-Z+V9Q;yVOV{gK2YlHYFzOD|_B~F;Ft(&DYggHtqB=Vb8hPut# z37e`CZ#qh>BsLI>qXSa3&K~NQ1_9lLmvetZzp1NA;i4dco`}mWATqwn3!pBZg4hHJ z5niY*<cyO>%`@75xZ*%HG^oajkT!s5bXOkaNu<5Kh!IB@1*bhfL+`xAu`(C zp~pQx)baX*t>53$s4}nhXU}r(h&q4c1mgCguucgpbFlA3OvOfa!pSI~Mf|bb$A5KD zl|3176*CY@_3-3`K@ssO_=7m@;9Juxk2_pDb@;vp^)X#lkBW)Pi*i)e`3(5>(c=qs z4-de*sh9AWD%4ZDw**3*gaJ7i5bO-Gu=%DNoz!?G?t@eCG&~K#6Ro^;X=B+1ZBaR! zF>>hqVUF<1t~(kdeaLejDux$bWAS9aEcgCnvg?j%(J`=9_F&Iv4m<*HvpNL2;I_DJ zgA3~P@cSd@ztN6fSrd27@y?aI$Q|W@j8DZY;7!So)UR&%xx0n?yJ3FFkN^IA;YXy< zDh~@-rG7Jd%G=R$NQ(|?F=mP>MqX=LXGtm1s!ec$$Z^XXP znx5Ah-=d7hxA2hTQ}%e?LV5J~+UwsRt-TEMMY?#l3c)qgP3qz#0}3~wG5$RKXBKX1 zj10*C1t_i9AKo^_)+mTQymnWW!Qoi)p$JV^o%+=&!HrWc1$71flY?JhL!fSywuyRG za1v4lr<$mqPg9G~YQ0@`?UGutE&QlVB_t|Nt$I@;g{e(lJAG@eR@F#NnwB+T1g?UZ zH33g^=p7h`DW4Gi^GPIPt=rLGMj(YF(!9L&SIzu=g*&xCeyD73-P!*o5Dsc-j)m)w z&%hlx0PU#4!yU%wrKIF&aQmO|&J+~maCArYfn5;uFxTk6pGHYlCB1A%^ zig9YVAFW~&I2?mlk>FcD2z2*@H*1xRvIRVS^pfl`@t4){Kl#B?lp}7apz9&nA6@PN z%G3^VLnRznU&_$bAUI}{-~jibkDimgz&`4=$cIhk@~{smJv)q!7Q7Aaz@<#wdyhU! zELTrlfNY4ktARe+Ap1ppvk5BtD;zkNf(tJgSTB|R6bsqO;;9PA-I9sc#B!*_uWO)f z)iUI@PA$ErJQQF@#jh#^VzE@>KH?V1AxilX>!b{6iAhpviYJaiyQ4SY06hK^_yp^O zpL~IErg0WMdd`O)a&RQd`ARQo1OL zRu@H6YO7FtDj`y}##TyOTCt=wMZAR4sx#wGI{)wU+?fcCx9R8e|IK{9&%O7o&w0*s z&pr2?bDtAfR-)28SCQeHkr�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 QxwZ^{)1YwHAiE^}KX@ofDgXcg literal 0 HcmV?d00001 diff --git a/src/App.svelte b/src/App.svelte index 7118944..daa35b0 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -83,8 +83,8 @@ class:is-animated={isReady && !isResizing} style="width: {wrapperWidth}; transform: {wrapperTransform}" > - {#each slides.all as slide} -
+ {#each slides.all as slide, i} +
{#if slide.loaded} = projects.length - 1} onclick={() => { if (currentIndex < projects.length - 1) { currentIndex++; setAnchor(currentIndex) } }} > - {String(currentIndex + 1).padStart(2, '0')}/{String(projects.length).padStart(2, '0')} + {String(currentIndex + 1).padStart(2, '0')}/{String(projects.length).padStart(2, '0')}
@@ -270,7 +270,7 @@ .portfolio-nav { grid-area: 4/17 / span 14 / span 4; - padding-right: 8rem; + margin-right: 7vw; z-index: var(--z-content); display: flex; flex-direction: column; @@ -350,12 +350,13 @@ } .portfolio-arrow--up { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M2 8L6 4L10 8'/%3E%3C/svg%3E"); + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAARCAYAAAAL4VbbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACxSURBVChT7dExDgFBFMbxF4RKolC5ABGRuIIjqJQu4ATiDE6hcQKNhsJGi4YLqBQ6jfF/k53Js8YNfMkvb9/Mm8lmV5xzRTVsMDZrXkm+U8EQA9/ZFE7PYHND3Lc3T9DC1nciVxyg611dCKfq0EyhvWaE8LyAv3mFB/pYogFNO689dPDS4Qt2OOKOKjShnrHGPryG1YRmjo+91Kf7mf+wTWq4nNfwJ2NSw09kOPkuRuQNVDyfOxATXhEAAAAASUVORK5CYII="); + transform: rotate(180deg); margin-right: 2px; } .portfolio-arrow--down { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M2 4L6 8L10 4'/%3E%3C/svg%3E"); + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAARCAYAAAAL4VbbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACxSURBVChT7dExDgFBFMbxF4RKolC5ABGRuIIjqJQu4ATiDE6hcQKNhsJGi4YLqBQ6jfF/k53Js8YNfMkvb9/Mm8lmV5xzRTVsMDZrXkm+U8EQA9/ZFE7PYHND3Lc3T9DC1nciVxyg611dCKfq0EyhvWaE8LyAv3mFB/pYogFNO689dPDS4Qt2OOKOKjShnrHGPryG1YRmjo+91Kf7mf+wTWq4nNfwJ2NSw09kOPkuRuQNVDyfOxATXhEAAAAASUVORK5CYII="); margin-right: 5px; } @@ -371,17 +372,24 @@ } /* Gallery over background, under content */ - .portfolio-gallery { + .portfolio-gallery.mobile-only { position: fixed; - transform: translateX(-10vw); - width: 120vw; opacity: 0.8; z-index: 1; + transform: translateX(0vw); + width: 100vw; + transition: all .3s ease-in-out; + } + + :global(.slide.active .portfolio-gallery.mobile-only) { + transform: translateX(-10vw); + width: 120vw; + transition: all .3s ease-in-out .8s; } .content-background { position: fixed; - top: -7rem; + bottom: 0; width: 100vw; height: auto; z-index: 5; @@ -399,8 +407,9 @@ /* Text — over mockup, centered */ .portfolio-text { - grid-area: 9/3 / span 7 / span 16; + grid-area: 8/4/span 8/span 14; z-index: var(--z-content); + gap: .5rem; text-align: center; } @@ -414,7 +423,10 @@ } .portfolio-description { + font-family: "Danzza Light", sans-serif; font-size: var(--font-size-paragraph-mobile); + font-weight: 600; + line-height: 1.34; } /* Hide keywords on mobile */ @@ -422,6 +434,11 @@ display: none; } + .portfolio-links { + margin-top: .5rem; + justify-content: center; + } + /* Nav thumbnails — horizontal, compact */ .portfolio-nav { grid-area: 17/4 / span 1 / span 14; @@ -431,6 +448,7 @@ height: 75px; align-items: center; overflow: hidden; + margin-right: 0; } .portfolio-nav-item:not(:last-child) { @@ -451,8 +469,8 @@ } .portfolio-nav-item img { - width: 45px; - height: 50px; + width: 3.75rem; + height: 3.75rem; } .portfolio-nav-number { @@ -464,6 +482,10 @@ grid-area: 18/15 / span 1 / span 3; font-size: var(--font-size-caption-mobile, 11px); } + + .portfolio-counter { + font-size: 0.8125rem; + } } /* Tablet (701px–912px) */ From 0a346040a2ede614836660830863aa8bcbbfe122 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Thu, 12 Mar 2026 19:33:01 +0100 Subject: [PATCH 2/2] Fix: portfolio mobile layout adjustments Co-Authored-By: Claude Sonnet 4.6 --- site/blueprints/pages/project.yml | 1 + src/views/Portfolio.svelte | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/site/blueprints/pages/project.yml b/site/blueprints/pages/project.yml index 9bc0781..fb4f2a9 100644 --- a/site/blueprints/pages/project.yml +++ b/site/blueprints/pages/project.yml @@ -47,6 +47,7 @@ columns: - strike - clear - link + maxlength: 500 help: Description complète du projet images: diff --git a/src/views/Portfolio.svelte b/src/views/Portfolio.svelte index 81e49eb..00540d9 100644 --- a/src/views/Portfolio.svelte +++ b/src/views/Portfolio.svelte @@ -369,6 +369,9 @@ .portfolio { background: transparent; + width: 100vw; + height: auto; + overflow: hidden; } /* Gallery over background, under content */ @@ -378,13 +381,6 @@ z-index: 1; transform: translateX(0vw); width: 100vw; - transition: all .3s ease-in-out; - } - - :global(.slide.active .portfolio-gallery.mobile-only) { - transform: translateX(-10vw); - width: 120vw; - transition: all .3s ease-in-out .8s; } .content-background {