{"version":3,"sources":["../scripts/start.js"],"names":["document","addEventListener","body","querySelector","section","header","svg","anchor","ellipse","width","clientWidth","height","clientHeight","maxRadius","Math","ceil","sqrt","pow","rxRange","rxDomain","min","max","rRange","rDomain","window","scroll","scrollY","rx","style","transform","setAttribute","classList","toggle"],"mappings":";AAAAA,SAASC,iBAAiB,mBAAoB,WACtCC,IAAAA,EAAOF,SAASG,cAAc,QAC9BC,EAAUJ,SAASG,cAAc,iBAEjCE,EAASD,EAAQD,cAAc,WAC/BG,EAAMF,EAAQD,cAAc,eAC5BI,EAASH,EAAQD,cAAc,WAC/BK,EAAUF,EAAIH,cAAc,WAE5BM,EAAQP,EAAKQ,YACbC,EAAST,EAAKU,aACdC,EAAYC,KAAKC,KAAKD,KAAKE,KAAKF,KAAKG,IAAI,GAAMN,EAAQ,GAAKG,KAAKG,IAAI,GAAMR,EAAO,KAKlFS,EAAiB,GAAjBA,EAA0B,IAC1BC,EAAW,CACfC,IALY,GAKNF,EAAcA,GACpBG,IAAK,GAIDC,EAAgB,GAAhBA,EAAyBT,EACzBU,EACCJ,EAASC,IADVG,EAXQ,GAaND,EAAaA,GAGrBE,OAAOvB,iBAAiB,SAAU,WAC1BwB,IAAAA,EAASD,OAAOE,QAElBD,GAAAA,GAAUN,EAASC,IAAK,CACpBO,IAAAA,EAAKT,GAAgBO,EAASN,EAASC,MAAQD,EAASE,IAAMF,EAASC,MAC1EF,EAAcA,GAEjBZ,EAAIsB,MAAMC,UAAV,gBACAxB,EAAOuB,MAAMC,UAAb,gBAEArB,EAAQsB,aAAa,KAAMH,GAC3BnB,EAAQsB,aAAa,KAAMR,OACtB,CACCK,IAAAA,EAAKL,GAAeG,EAASF,IAAgBA,EAAcA,IAC9DD,EAAaA,GAEhBlB,EAAQ2B,UAAUC,OAAO,OAAQL,GAAgC,GAA1Bb,KAAKO,IAAIZ,EAAOE,IAEnDc,GAAUZ,IACZP,EAAIsB,MAAMC,UAA2BJ,eAAAA,OAAAA,EAASZ,EAA9C,QAGEY,GAAUd,EAASN,EAAOO,aAAeC,IAC3CR,EAAOuB,MAAMC,UAA2BJ,eAAAA,OAAAA,EAASZ,EAAYF,EAASN,EAAOO,aAA7E,QAGFJ,EAAQsB,aAAa,KAAMH,GAC3BnB,EAAQsB,aAAa,KAAMH,MAG/BpB,EAAOqB,MAAMjB,OAAYA,GAAAA,OAAAA,EAASE,EAAlC","file":"start.9db24107.js","sourceRoot":"../src/pages","sourcesContent":["document.addEventListener('DOMContentLoaded', () => {\n const body = document.querySelector('body');\n const section = document.querySelector('section.start');\n\n const header = section.querySelector('.header');\n const svg = section.querySelector('svg.ellipse');\n const anchor = section.querySelector('.anchor');\n const ellipse = svg.querySelector('ellipse');\n\n const width = body.clientWidth;\n const height = body.clientHeight;\n const maxRadius = Math.ceil(Math.sqrt(Math.pow(0.5 * height, 2) + Math.pow(0.5 * width, 2)));\n\n const speed = 1; // pixels increase in radius for one pixel of scroll\n\n // first part of animation\n const rxRange = { min: 25, max: 250 };\n const rxDomain = {\n min: (rxRange.max - rxRange.min) * speed,\n max: 0,\n };\n\n // second part of animation\n const rRange = { min: 25, max: maxRadius };\n const rDomain = {\n min: rxDomain.min,\n max: (rRange.max - rRange.min) * speed,\n };\n\n window.addEventListener('scroll', () => {\n const scroll = window.scrollY;\n\n if (scroll <= rxDomain.min) {\n const rx = rxRange.min + ((scroll - rxDomain.min) / (rxDomain.max - rxDomain.min)) *\n (rxRange.max - rxRange.min);\n\n svg.style.transform = `translateY(0)`;\n header.style.transform = `translateY(0)`;\n\n ellipse.setAttribute('rx', rx);\n ellipse.setAttribute('ry', rRange.min);\n } else {\n const rx = rRange.min + ((scroll - rDomain.min) / (rDomain.max - rDomain.min)) *\n (rRange.max - rRange.min);\n\n section.classList.toggle('dark', rx >= Math.max(width, height) * 0.5);\n\n if (scroll >= maxRadius) {\n svg.style.transform = `translateY(-${scroll - maxRadius}px)`;\n }\n\n if (scroll >= height - header.clientHeight + maxRadius) {\n header.style.transform = `translateY(-${scroll - maxRadius - height + header.clientHeight}px)`;\n }\n\n ellipse.setAttribute('rx', rx);\n ellipse.setAttribute('ry', rx);\n }\n });\n anchor.style.height = `${height + maxRadius}px`;\n});\n"]}