@@ -151,6 +151,7 @@ section {
151151 height : 200px ;
152152 margin-right : 1rem ;
153153 border-radius : 10rem ;
154+ rotate : 50deg ;
154155 }
155156}
156157
@@ -186,3 +187,342 @@ section {
186187 grid-row-end : 4 ;
187188 }
188189}
190+
191+ // BACKGROUND
192+ /* Background container */
193+ .bg-container {
194+ position : fixed ;
195+ top : 0 ;
196+ left : 0 ;
197+ width : 100% ;
198+ height : 100% ;
199+ z-index : -1 ;
200+ overflow : hidden ;
201+ pointer-events : none ;
202+ }
203+
204+ /* SVG container */
205+ .flowing-lines {
206+ width : 100% ;
207+ height : 100% ;
208+ }
209+
210+ .flow-path {
211+ fill : none ;
212+ stroke-linecap : round ;
213+ stroke-linejoin : round ;
214+ }
215+
216+ /* Color palette - nature inspired */
217+ .flow-path-1 {
218+ stroke : rgba (147 , 197 , 114 , 0.12 );
219+ stroke-width : 2 ;
220+ animation : flow1 45s ease-in-out infinite ;
221+ }
222+
223+ .flow-path-2 {
224+ stroke : rgba (135 , 206 , 235 , 0.10 );
225+ stroke-width : 1.8 ;
226+ animation : flow2 50s ease-in-out infinite ;
227+ animation-delay : -10s ;
228+ }
229+
230+ .flow-path-3 {
231+ stroke : rgba (210 , 180 , 140 , 0.08 );
232+ stroke-width : 1.5 ;
233+ animation : flow3 55s ease-in-out infinite ;
234+ animation-delay : -20s ;
235+ }
236+
237+ .flow-path-4 {
238+ stroke : rgba (147 , 197 , 114 , 0.09 );
239+ stroke-width : 1.3 ;
240+ animation : flow4 60s ease-in-out infinite ;
241+ animation-delay : -30s ;
242+ }
243+
244+ .flow-path-5 {
245+ stroke : rgba (135 , 206 , 235 , 0.07 );
246+ stroke-width : 1 ;
247+ animation : flow5 65s ease-in-out infinite ;
248+ animation-delay : -40s ;
249+ }
250+
251+ .flow-path-6 {
252+ stroke : rgba (210 , 180 , 140 , 0.11 );
253+ stroke-width : 1.6 ;
254+ animation : flow6 48s ease-in-out infinite ;
255+ animation-delay : -5s ;
256+ }
257+
258+ .flow-path-7 {
259+ stroke : rgba (147 , 197 , 114 , 0.08 );
260+ stroke-width : 1.2 ;
261+ animation : flow7 52s ease-in-out infinite ;
262+ animation-delay : -15s ;
263+ }
264+
265+ .flow-path-8 {
266+ stroke : rgba (135 , 206 , 235 , 0.09 );
267+ stroke-width : 1.4 ;
268+ animation : flow8 58s ease-in-out infinite ;
269+ animation-delay : -25s ;
270+ }
271+
272+ .flow-path-9 {
273+ stroke : rgba (210 , 180 , 140 , 0.07 );
274+ stroke-width : 1.1 ;
275+ animation : flow9 62s ease-in-out infinite ;
276+ animation-delay : -35s ;
277+ }
278+
279+ .flow-path-10 {
280+ stroke : rgba (147 , 197 , 114 , 0.10 );
281+ stroke-width : 1.7 ;
282+ animation : flow10 47s ease-in-out infinite ;
283+ animation-delay : -8s ;
284+ }
285+
286+ .flow-path-11 {
287+ stroke : rgba (135 , 206 , 235 , 0.08 );
288+ stroke-width : 1.3 ;
289+ animation : flow11 53s ease-in-out infinite ;
290+ animation-delay : -18s ;
291+ }
292+
293+ .flow-path-12 {
294+ stroke : rgba (210 , 180 , 140 , 0.09 );
295+ stroke-width : 1.5 ;
296+ animation : flow12 57s ease-in-out infinite ;
297+ animation-delay : -28s ;
298+ }
299+
300+ .flow-path-13 {
301+ stroke : rgba (147 , 197 , 114 , 0.07 );
302+ stroke-width : 1 ;
303+ animation : flow13 61s ease-in-out infinite ;
304+ animation-delay : -38s ;
305+ }
306+
307+ .flow-path-14 {
308+ stroke : rgba (135 , 206 , 235 , 0.11 );
309+ stroke-width : 1.9 ;
310+ animation : flow14 49s ease-in-out infinite ;
311+ animation-delay : -12s ;
312+ }
313+
314+ .flow-path-15 {
315+ stroke : rgba (210 , 180 , 140 , 0.06 );
316+ stroke-width : 1.2 ;
317+ animation : flow15 54s ease-in-out infinite ;
318+ animation-delay : -22s ;
319+ }
320+
321+ /* Flowing animations - organic morphing paths */
322+ @keyframes flow1 {
323+ 0%, 100% {
324+ d : path (" M-200,100 Q100,60 400,110 Q700,160 1000,100 Q1300,50 1600,110" );
325+ }
326+ 33% {
327+ d : path (" M-200,130 Q100,90 400,140 Q700,190 1000,130 Q1300,80 1600,140" );
328+ }
329+ 66% {
330+ d : path (" M-200,115 Q100,75 400,125 Q700,175 1000,115 Q1300,65 1600,125" );
331+ }
332+ }
333+
334+ @keyframes flow2 {
335+ 0%, 100% {
336+ d : path (" M-200,180 Q150,140 450,190 Q750,240 1050,180 Q1350,130 1650,190" );
337+ }
338+ 33% {
339+ d : path (" M-200,210 Q150,170 450,220 Q750,270 1050,210 Q1350,160 1650,220" );
340+ }
341+ 66% {
342+ d : path (" M-200,195 Q150,155 450,205 Q750,255 1050,195 Q1350,145 1650,205" );
343+ }
344+ }
345+
346+ @keyframes flow3 {
347+ 0%, 100% {
348+ d : path (" M-200,260 Q200,220 500,270 Q800,320 1100,260 Q1400,210 1700,270" );
349+ }
350+ 33% {
351+ d : path (" M-200,290 Q200,250 500,300 Q800,350 1100,290 Q1400,240 1700,300" );
352+ }
353+ 66% {
354+ d : path (" M-200,275 Q200,235 500,285 Q800,335 1100,275 Q1400,225 1700,285" );
355+ }
356+ }
357+
358+ @keyframes flow4 {
359+ 0%, 100% {
360+ d : path (" M-200,340 Q250,300 550,350 Q850,400 1150,340 Q1450,290 1750,350" );
361+ }
362+ 33% {
363+ d : path (" M-200,370 Q250,330 550,380 Q850,430 1150,370 Q1450,320 1750,380" );
364+ }
365+ 66% {
366+ d : path (" M-200,355 Q250,315 550,365 Q850,415 1150,355 Q1450,305 1750,365" );
367+ }
368+ }
369+
370+ @keyframes flow5 {
371+ 0%, 100% {
372+ d : path (" M-200,420 Q300,380 600,430 Q900,480 1200,420 Q1500,370 1800,430" );
373+ }
374+ 33% {
375+ d : path (" M-200,450 Q300,410 600,460 Q900,510 1200,450 Q1500,400 1800,460" );
376+ }
377+ 66% {
378+ d : path (" M-200,435 Q300,395 600,445 Q900,495 1200,435 Q1500,385 1800,445" );
379+ }
380+ }
381+
382+ @keyframes flow6 {
383+ 0%, 100% {
384+ d : path (" M-200,500 Q180,465 480,510 Q780,555 1080,500 Q1380,450 1680,510" );
385+ }
386+ 33% {
387+ d : path (" M-200,530 Q180,495 480,540 Q780,585 1080,530 Q1380,480 1680,540" );
388+ }
389+ 66% {
390+ d : path (" M-200,515 Q180,480 480,525 Q780,570 1080,515 Q1380,465 1680,525" );
391+ }
392+ }
393+
394+ @keyframes flow7 {
395+ 0%, 100% {
396+ d : path (" M-200,580 Q220,540 520,590 Q820,640 1120,580 Q1420,530 1720,590" );
397+ }
398+ 33% {
399+ d : path (" M-200,610 Q220,570 520,620 Q820,670 1120,610 Q1420,560 1720,620" );
400+ }
401+ 66% {
402+ d : path (" M-200,595 Q220,555 520,605 Q820,655 1120,595 Q1420,545 1720,605" );
403+ }
404+ }
405+
406+ @keyframes flow8 {
407+ 0%, 100% {
408+ d : path (" M-200,660 Q270,620 570,670 Q870,720 1170,660 Q1470,610 1770,670" );
409+ }
410+ 33% {
411+ d : path (" M-200,690 Q270,650 570,700 Q870,750 1170,690 Q1470,640 1770,700" );
412+ }
413+ 66% {
414+ d : path (" M-200,675 Q270,635 570,685 Q870,735 1170,675 Q1470,625 1770,685" );
415+ }
416+ }
417+
418+ @keyframes flow9 {
419+ 0%, 100% {
420+ d : path (" M-200,740 Q320,700 620,750 Q920,800 1220,740 Q1520,690 1820,750" );
421+ }
422+ 33% {
423+ d : path (" M-200,770 Q320,730 620,780 Q920,830 1220,770 Q1520,720 1820,780" );
424+ }
425+ 66% {
426+ d : path (" M-200,755 Q320,715 620,765 Q920,815 1220,755 Q1520,705 1820,765" );
427+ }
428+ }
429+
430+ @keyframes flow10 {
431+ 0%, 100% {
432+ d : path (" M-200,820 Q130,785 430,830 Q730,875 1030,820 Q1330,770 1630,830" );
433+ }
434+ 33% {
435+ d : path (" M-200,850 Q130,815 430,860 Q730,905 1030,850 Q1330,800 1630,860" );
436+ }
437+ 66% {
438+ d : path (" M-200,835 Q130,800 430,845 Q730,890 1030,835 Q1330,785 1630,845" );
439+ }
440+ }
441+
442+ @keyframes flow11 {
443+ 0%, 100% {
444+ d : path (" M-200,140 Q280,105 580,150 Q880,195 1180,140 Q1480,90 1780,150" );
445+ }
446+ 33% {
447+ d : path (" M-200,170 Q280,135 580,180 Q880,225 1180,170 Q1480,120 1780,180" );
448+ }
449+ 66% {
450+ d : path (" M-200,155 Q280,120 580,165 Q880,210 1180,155 Q1480,105 1780,165" );
451+ }
452+ }
453+
454+ @keyframes flow12 {
455+ 0%, 100% {
456+ d : path (" M-200,300 Q170,260 470,310 Q770,360 1070,300 Q1370,250 1670,310" );
457+ }
458+ 33% {
459+ d : path (" M-200,330 Q170,290 470,340 Q770,390 1070,330 Q1370,280 1670,340" );
460+ }
461+ 66% {
462+ d : path (" M-200,315 Q170,275 470,325 Q770,375 1070,315 Q1370,265 1670,325" );
463+ }
464+ }
465+
466+ @keyframes flow13 {
467+ 0%, 100% {
468+ d : path (" M-200,540 Q240,505 540,550 Q840,595 1140,540 Q1440,490 1740,550" );
469+ }
470+ 33% {
471+ d : path (" M-200,570 Q240,535 540,580 Q840,625 1140,570 Q1440,520 1740,580" );
472+ }
473+ 66% {
474+ d : path (" M-200,555 Q240,520 540,565 Q840,610 1140,555 Q1440,505 1740,565" );
475+ }
476+ }
477+
478+ @keyframes flow14 {
479+ 0%, 100% {
480+ d : path (" M-200,700 Q160,665 460,710 Q760,755 1060,700 Q1360,650 1660,710" );
481+ }
482+ 33% {
483+ d : path (" M-200,730 Q160,695 460,740 Q760,785 1060,730 Q1360,680 1660,740" );
484+ }
485+ 66% {
486+ d : path (" M-200,715 Q160,680 460,725 Q760,770 1060,715 Q1360,665 1660,725" );
487+ }
488+ }
489+
490+ @keyframes flow15 {
491+ 0%, 100% {
492+ d : path (" M-200,380 Q290,345 590,390 Q890,435 1190,380 Q1490,330 1790,390" );
493+ }
494+ 33% {
495+ d : path (" M-200,410 Q290,375 590,420 Q890,465 1190,410 Q1490,360 1790,420" );
496+ }
497+ 66% {
498+ d : path (" M-200,395 Q290,360 590,405 Q890,450 1190,395 Q1490,345 1790,405" );
499+ }
500+ }
501+
502+ /* Responsive */
503+ @media (max-width : 768px ) {
504+ h1 {
505+ font-size : 2em ;
506+ }
507+
508+ .content {
509+ padding : 20px 15px ;
510+ }
511+
512+ /* Reduce some lines on mobile for performance */
513+ .flow-path-11 ,
514+ .flow-path-12 ,
515+ .flow-path-13 ,
516+ .flow-path-14 ,
517+ .flow-path-15 {
518+ display : none ;
519+ }
520+ }
521+
522+ /* Reduce motion for accessibility */
523+ @media (prefers-reduced-motion : reduce) {
524+ .flow-path {
525+ animation : none ;
526+ opacity : 0.5 ;
527+ }
528+ }
0 commit comments