svg( xmlns="http://www.w3.org/2000/svg" width=500 height=500 viewBox="0 0 500 500" ) defs linearGradient#gradient-green(x1=0 x2=0 y1=0 y2=1) stop(offset="0%" stop-color="#6ed355")/ stop(offset="100%" stop-color="#42b970")/ symbol#star(width=20 height=20 viewBox="0 0 20 20") path( d="M 0 10 C 6 10 10 6 10 0 C 10 6 14 10 20 10 C 14 10 10 14 10 20 C 10 14 6 10 0 10" fill="#6ed355" )/ path( d="M 125 250 A 1 1 0 0 0 375 250 A 1 1 0 0 0 125 250 M 207.75 253.75 L 236.36 282.36 L 298.86 219.86" fill="none" stroke-width=10 stroke="url(#gradient-green)" stroke-linecap="round" stroke-linejoin="round" )/ - var count = 25 while count-- - var r = 140 - var rmax = 180 + Math.random() * (241 - 180) - var angle = Math.random() * Math.PI * 2 - var x1 = 240 + Math.cos(angle) * r - var y1 = 240 + Math.sin(angle) * r - var x2 = 240 + Math.cos(angle) * rmax - var y2 = 240 + Math.sin(angle) * rmax use( x=x1 y=y1 href="#star" opacity=0 transform-origin=`${x1} ${y1}` ) - var dur = '2s' - var start = Math.floor((Math.random() * 10) * 100) / 100 - var delay = Math.floor((Math.random() * 10 + .5) * 100) / 100 - var scaleStart = Math.floor((Math.random() * 1.5) * 100) / 100 - var scaleEnd = Math.floor((Math.random() * 1.5) * 100) / 100 animate( id=`aX-${count}` attributeName="x" values=`${x1};${x2}` dur=dur fill="freeze" repeatCount="indefinite" begin=`${start}s;aX-${count}.end+${delay}s` )/ animate( id=`aY-${count}` attributeName="y" values=`${y1};${y2}` dur=dur fill="freeze" repeatCount="indefinite" begin=`${start}s;aY-${count}.end+${delay}s` )/ animate( id=`aO-${count}` attributeName="opacity" values="0;1;0" dur=dur fill="freeze" repeatCount="indefinite" begin=`${start}s;aO-${count}.end+${delay}s` )/ animateTransform( id=`aS-${count}` attributeName="transform" attributeType="XML" type="scale" from=scaleStart to=scaleEnd dur=dur additive="sum" calcMode="paced" fill="freeze" repeatCount="indefinite" begin=`${start}s;aS-${count}.end+${delay}s` )/ body display flex flex-direction column justify-content center align-items center width 100% min-height 100vh overflow hidden auto svg max-height 75vh