{"version":3,"file":"static/chunks/app/subscribe/page-c0fb0769c2b20479.js","mappings":"iFAAA,uCAA4H,CAE5H,4CAAsI,CAEtI,uCAAoH,CAEpH,uCAAsH,CAEtH,uCAAgH,CAEhH,uCAAmH,CAEnH,uCAAoH,CAEpH,uCAAwH,CAExH,uCAA4G,CAE5G,4CAAoH,CAEpH,4CAA8F,CAE9F,sCAAkI,CAElI,uCAAyH,CAEzH,4CAA0G,CAE1G,4CAAkH,CAElH,4CAA4F,CAE5F,uCAAkI,CAElI,sCAAsH,CAEtH,4CAA0G,CAE1G,uCAAwH,CAExH,uCAAyI,CAEzI,4CAAgG,gDC7B1F,MAAa,aAAgB,CAAC,YAAc,EAChD,CAAC,MAAQ,EAAE,EAAG,CAAY,cAAK,SAAU,EACzC,CAAC,MAAQ,EAAE,EAAG,CAAiB,mBAAK,SAAU,EAC/C,gDCHK,MAAS,aAAgB,CAAC,QAAU,EACxC,CACE,OACA,CACE,CAAG,4PACH,GAAK,QACP,EACF,CACA,CAAC,MAAQ,EAAE,EAAG,CAAyB,2BAAK,SAAU,EACvD,iDCTK,MAAW,aAAgB,CAAC,UAAY,EAC5C,CACE,OACA,CACE,CAAG,kFACH,GAAK,SACP,EACF,CACA,CAAC,OAAQ,CAAE,MAAO,CAAK,UAAQ,CAAM,MAAG,GAAK,GAAG,GAAK,KAAK,SAAU,EACpE,CAAC,QAAU,EAAE,EAAI,KAAK,CAAI,MAAK,CAAG,KAAK,GAAK,UAAU,EACvD,yMCoHD,IAAMA,EAAkBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,MAAT,CAASC,IAAA,mBAAAC,KAAA,YAAAC,SAAA,KAG7B,CAEKC,EAAUJ,CAAAA,EAAAA,EAAH,CAAGA,CAAM,SAAAC,IAAA,WAAAC,KAAA,YAAAC,SAAA,KAQrB,CAEKE,EAAiBL,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAAM,GAAA,CAAAL,CAAA,qBAAAC,KAAA,WAAAC,SAAA,KAW5B,CAEKI,EAAQP,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,WAAAC,IAAA,SAAAC,KAAA,WAAAC,SAAA,KAEnB,CAEKK,EAAaR,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,WAAAC,IAAA,cAAAC,KAAA,YAAAC,SAAA,KAiBxB,CAEKM,EAAoBT,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,QAAT,CAASC,IAAA,qBAAAC,KAAA,WAAAC,SAAA,KAU/B,CAEKO,EAAeV,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAACW,EAAAA,EAAkB,CAAnB,EAAAV,IAAA,gBAAAC,KAAA,YAAAC,SAAA,KAkB1B,CAEKS,EAAeZ,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAACa,EAAV,CAAuB,EAAd,CAAAZ,IAAA,gBAAAC,KAAA,WAAAC,SAAA,KAmB1B,CAEKW,EAAYd,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,SAAAC,IAAA,aAAAC,KAAA,WAAAC,SAAA,KAKvB,CAEKY,EAAaf,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAT,KAAS,CAAAC,IAAA,cAAAC,KAAA,YAAAC,SAAA,KAMxB,CAEKa,EAAehB,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAACiB,EAAV,CAAwB,EAAf,CAAAhB,IAAA,gBAAAC,KAAA,WAAAC,SAAA,KAW1B,CAEKe,EAAiBlB,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAACW,EAAAA,EAAkB,CAAnB,EAAAV,IAAA,kBAAAC,KAAA,YAAAC,SAAA,KAe5B,CAEKgB,EAAYnB,CAAAA,EAAAA,EAAAA,CAAAA,CAAH,CAAS,MAAAC,IAAA,aAAAC,KAAA,WAAAC,SAAA,KAGvB,CAEKiB,EAAgBpB,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAAqB,GAAT,CAASpB,CAAA,oBAAAC,KAAA,YAAAC,SAAA,KAK3B,CAEKmB,EAAkCtB,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,WAAAC,IAAA,OAAT,4BAASC,KAAA,YAAAC,SAAA,KAgB7C,CAEKoB,EAAgBvB,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,IAAT,IAAS,CAAAC,IAAA,iBAAAC,KAAA,YAAAC,SAAA,KAc3B,CAEKqB,EAAYxB,CAAAA,EAAAA,EAAAA,CAAAA,CAAH,CAASyB,GAAA,CAAAxB,EAAA,eAAAC,KAAA,YAAAC,SAAA,KAEvB,CACKuB,EAAe1B,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAA2B,EAAT,CAAS,CAAA1B,EAAA,kBAAAC,KAAA,YAAAC,SAAA,KAE1B,CAED,EA5TA,SAASyB,EACP,GAAM,CAACC,EAAkBC,EAAuB,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAS,CA2T/CH,CA3TgD,EAAtC,CADM,EAAG,CACmC,IAApB,SAG7CI,CAAc,CAwTmB,mBAvTjCC,CAAkB,CAClBC,uBAAAA,CACD,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAW,CAAC,CAAC,CAEXC,EAAWC,EAAAA,IAAH,EAAe,CAACC,IAAsB,CAAC,CAErDC,CAAAA,EAAAA,EAAAA,CAAAA,CAAe,CAACH,GAEhB,GAAM,EAFkB,CAAC,KAGvBI,CAAM,aACNC,CAAW,CACXC,OAAK,CACLC,wBAAsB,SACtBC,CAAO,cACPC,CAAY,cACZC,CAAAA,CACD,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAmB,CAAC,CACtBC,SAAS,CAAE,CACTC,OAAO,CAAEhB,EACTiB,SAAS,CAAEhB,CACb,CACF,CAAC,CAAC,EAH6B,KAK/B,SAAwB,EAAE,CAAtBM,EAEA,IAFM,CAEN,4BACE,UAAC,EAAc,UACb,EADa,CACb,QAAC,EAAc,CAAC,SAAS,CAAC,CAAX,MAAkB,WAC/B,UAAC,EAAS,IACV,GADU,EACV,KAAC,EAAa,UAAC,CAAD,cAAgB,EAAE,GAChC,UAAC,EAAS,2KAKV,WAAC,EAA+B,CAAC,OAAO,CAAC,mBAAmB,CAA5B,UAC9B,UAAC,GAAQ,EACP,EAAE,CAAC,mBAAmB,CACtB,OAAO,CAAC,EACR,QAAQ,CAAC,IAAwB,CADR,CAAC,gBACM,SAIpC,UAAC,EAAY,SAGjB,CAHiB,EAGjB,OAAC,GAAe,EACd,MAAM,CAAC,EACP,IAAI,CAAC,EAAoB,KADH,CAAC,EACU,CAAG,KAAd,EAAqB,MAOjD,iCACE,UAAC,EAAe,UAAC,GAAD,sBAA0B,EAAE,GAE5C,WAAC,EAAO,CACN,EAAE,CAAC,CADG,MAIN,QAAQ,CAAC,YAAa,CAAC,CAIvB,UAAC,EAAK,CAAC,EAAD,KAAQ,CAAC,OAAQ,CAAC,GAAC,MAAM,EAAE,GAEjC,UAAC,EAAiB,UAChB,KADgB,IAChB,EAAC,EAAY,CAAC,SAAD,CAAW,OAAO,WAC7B,UAAC,EAAU,CAAC,EAAE,CAAC,EAAU,EAAd,CAAkBC,CAAW,CAAjB,CAAC,CACxB,UAAC,EAAY,CAAC,QAAQ,CAAT,YAAkC,CAAC,EAAxBD,MAAM,KAChB,YAAY,GAAvBA,EACC,IADK,CACL,KAAC,GAAO,EAAC,IAAI,CAAC,EAAG,GAEjB,QACD,QAKP,UAAC,EAAS,UACR,UAAC,EAAY,CACX,MAAM,CAAC,EADI,IACG,CAAC,CACT,EACN,GADY,CAAC,kBACS,CAAC,EACvB,QAAQ,CAAC,CACP,UAF4C,CAAC,CAElC,2GAGR,CAAC,CAACW,UAcb,IAd2B,CAc3B,KAAC,GAAe,EAAC,MAAM,CAAC,EAAiB,IAAI,CAAC,OAAO,CAAb,IAG9C,iGC3HA,IAAMC,EAASpD,CAAAA,EAAAA,CAAH,CAAGA,CAAAA,CAAM,YAAAC,IAAA,UAAAC,KAAA,WAAAC,SAAA,KA+FpB,CAEKkD,EAAgBrD,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,IAAT,KAAS,CAAAC,IAAA,iBAAAC,KAAA,YAAAC,SAAA,KAI3B,CAED,EAlHA,SAASmD,CAAWA,UAAAA,KAClBC,CAAQ,CACR,GAAGC,EACqC,CAHrB,CAGuB,CAC1C,CA8GwB,KA7GtB,UAAC,EAAO,IAAD,CAAC,CAAc,SACpB,UAAC,EAAc,UAACD,CAAF,CAAC,GAGrB,GAH8B,wIEJ9B,IAAME,EAAgB,CACpB,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACD,CACKC,EAAcD,EAAcE,MAAM,CAKlCC,EAEuC,aACvC,CAAK,IAFT,CACWC,IADkB,GACXC,GAAG,CAACC,gBAAgB,CAGlCC,EAAmB,CAACC,EAAYC,IACpC,yBAA+BA,MAAAA,CAAND,EAAG,KAAS,OAANC,GAqDjC,EAnDmB,OAAC,WAmDLC,IAlDbC,EAAgB,GAAI,CAGrB,EA+CyB,CA9ClBH,EAAK5B,EAAAA,KAAW,GAAGgC,OAAO,CAAC,KAAM,IAEjCC,EAGAT,OAAOU,UAAU,CAAC,GAFtB,MAA6B,GACzB,CAAiB,8BAGjBC,EAAYZ,GAAqBU,EAAqBG,OAAO,CAGnEpC,EAAAA,SAAe,CAAC,KACTmC,GAILE,CAAAA,EAAAA,EAAAA,EAAAA,CAAKA,CAAC,GAAGC,EAAaC,GAAG,CAAC,IACxB,IAAM3E,EAAO+D,EAAiBC,EAAIC,GAC5BW,EAAepB,CAAa,CAACS,EAAM,CAEzC,GAAI,CACFJ,IAAIC,gBAAgB,CAAC,MACnB9D,eACA4E,EACAC,OAAQ,UACRC,SAAU,EACZ,EACF,CAAE,MAAOC,EAAK,CAAC,CACjB,EACF,EAAG,CAACf,EAAIO,EAAU,EAElB,IAAMS,EAAgBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAACd,GAE5C,MAAOM,CAAAA,EAAAA,EAAAA,EAAAA,CAAKA,CAAC,EAjDK,CAiDFC,EAAaQ,MAAM,CAAC,CAACC,EAAKlB,KACxC,IAAMmB,EAAyBb,EAAYS,EAAgB,EAErDhF,EAAO+D,EAAiBC,EAAIC,GAC5BoB,EACJ7B,CAAa,CAAE4B,GAAyBnB,CAAAA,CAAI,CAAKR,EAAY,CAE/D,MAAO,CACL,GAAG0B,CAAG,CACN,CAACnF,EAAK,CAAEqF,CACV,CACF,EAAG,CAAC,EACN,ECZMlC,EAASpD,CAAAA,EAAAA,CAAH,CAAGA,CAAAA,CAAM,CAACsD,EAAAA,CAAW,CAAZ,EAAArD,IAAA,UAAAC,KAAA,WAAAC,SAAA,KAQpB,CAED,EAvDA,SAASU,CAAc,YAADA,GACpB0C,CAAQ,GAsDK1C,YArDbuD,CAqD0B,CArDV,IAAI,CACpBmB,MADa,KACJ,OACTC,EAAQ,CAAC,CAAC,CACV,GAAGhC,EACG,CAAE,EACFiC,EAAkC,IAAI,CAApBrB,EAElBsB,EAASvB,EAAW,EAFL,KAAgB,OAEZ,CAAGC,CAAc,CAAC,CAAC,CAItCuB,EAAUC,CAAAA,EAAAA,EAAH,CAAGA,CAAU,CAAC,CAAC,CAEtBC,EAAYC,MAAM,CAACC,IAAI,CAACL,GAE9B,GAFoC,CAAC,EAGnC,UAAC,EACC,IADK,CACL,CAAc,SACL,CAAC,EACV,OADoB,CAAC,eACE,CAAC,EAAa,SAAS,CAAC,EAAtBC,EACzB,KAAK,CAAE,CACL,GAAGH,CAAK,CACR,GAAGE,CAAM,CACTM,UAAU,CAAE,sBACRH,CAAS,CAAC,CAAC,CAAC,MACZA,MAAAA,CADgBJ,EAAe,kCACtB,CAAC,CAAC,CAAC,aAAIA,EAAe,0BACfA,MAAAA,CAAhBI,CAAS,CAAC,CAAC,CAAC,IAAmB,kCAEnC,cAAc,CAAE,yFAGNA,CAAS,CAAC,CAAC,CAAC,gCACZA,CAAS,CAAC,CAAC,CAAC,yBACA,OAAZA,CAAS,CAAC,CAAC,CAAC,4BAGxB,CAAC,CAAC,SAEDtC,GAGP,KAHe,gHEoCf,IAAMnD,EAAUJ,CAAAA,EAAAA,EAAH,CAAGA,CAAM,SAAAC,IAAA,WAAAC,KAAA,WAAAC,SAAA,KAErB,CAEK8F,EAAYjG,CAAAA,EAAAA,EAAAA,CAAAA,CAAH,CAAS,UAAAC,IAAA,aAAAC,KAAA,YAAAC,SAAA,KAYvB,CAEK+F,EAAkBlG,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,MAAT,EAAS,CAAAC,IAAA,mBAAAC,KAAA,YAAAC,SAAA,KAK7B,CAEKgG,EAAanG,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAACoG,EAAAA,EAAD,CAAUC,GAAG,EAAb,CAAApG,IAAA,cAAAC,KAAA,WAAAC,SAAA,KAcxB,CAEKmG,EAAStG,CAAAA,EAAAA,CAAH,CAAGA,CAAAA,CAAM,CAAAuG,EAACH,EAAQ,CAACC,GAAG,EAAb,CAAApG,IAAA,UAAAC,KAAA,YAAAC,SAAA,KASpB,CAEKI,EAAQP,CAAAA,EAAH,EAAGA,CAAAA,CAAM,WAAAC,IAAA,SAAAC,KAAA,YAAAC,SAAA,KAInB,CAED,EAxIiBqG,OAAC,IAChBvC,CAAE,MACFwC,CAsIaD,CAtIN,EAAH,KAsIiB,IArIrBE,CAAO,OACPC,CAAK,CACLC,UAAQ,CACR,GAAGpD,EACG,GACA,CAACqD,EAAQC,EAAU,CAAGzE,CAAf,CAAeA,IAAJ,IAAkB,EAAC,GACrC0E,EAD0C,CAAC,CAC7B1E,KAAW,CAAC,CAAf,CACX2E,EAAW/C,EAAE,CAAI,GAAT,SAAgC,CAAE,MAAb8C,GAE7BE,EAAe,CACnBC,KAH4C,EAGrC,CAAE,CADO,EACJ,CACZC,QAAQ,CAAE,EAAE,CACZC,KAAK,CAAE,CAACV,CACV,CAAC,CAGKW,EAAcZ,EAAQA,CAAAA,CAAJ,CAAQ,EAAJA,CAAQ,CAAnB,CAKIa,CAAAA,EAAAA,EAAAA,EAAAA,CAAS,CAAC,CAAb,SACP,CAAE,SAAoB,OAAXC,EAFSV,EAFb,CAAC,CAAGQ,CAEK,CAAyB,CAAC,CAAI,CAAC,CAEzB,EAAG,GAJH,GAEgB,GAGzC,CAAEJ,CACV,CAAC,CAAC,CAGIO,EAAgBF,CAAAA,EAAAA,EAAAA,EAAAA,CAAS,CAAC,CAC9BG,CADiB,QACR,CAAE,SAAqB,EAAG,KAFhBZ,EAASQ,EAAc,CAAC,CAAlB,KAGzBK,CADgC,CAFO,IAGjC,CAAET,CACV,CAAC,CAAC,CAEI,CAACU,EAAW,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAJ,CAAa,sBAAsB,CAAE,CACpDC,MAAM,CAAE,GACV,CAAC,CAAC,CACI,CAACC,EAAO,CAAGF,CAAAA,EAAJ,EAAIA,CAAAA,CAAQ,CAAC,uBAAuB,CAAE,CACjDC,MAAM,CAAE,GACV,CAAC,CAAC,CACI,CAACE,EAAQ,CAAGH,CAAAA,EAAAA,CAAJ,CAAIA,CAAAA,CAAQ,CAAC,wBAAwB,CAAE,CACnDC,MAAM,CAAE,GACV,CAAC,CAAC,CAEF,MACE,WAAC,EAAO,WACN,UAAC,EAAS,CACR,IAAI,CAAC,CADG,SACO,CACf,EAAE,CAAC,EACH,MADY,CAAC,IACF,CAAC,KACVf,GAAU,GACVa,CADc,CAAC,CAAN,CAEV,CAAC,KADU,CAAC,CAAC,EAEL,CAAC,KACRb,EAAU,IAENJ,CAFW,CAAC,CAAP,GAKPoB,CAHS,EACF,CAAC,CAAC,CAEH,CAAC,CAAC,KAGJ,CAAC,IAEX,IAFoB,CAEpB,MAAC,EAAe,WACd,EADc,CACd,OAAC,EAAU,CACT,KAAK,CAAC,CAAGE,KAAK,CAAEvB,EAAMwB,EAAF,IAAQ,CAAExB,EAAM,EAAF,CAAKe,CAAAA,CAAe,CAAC,SAEvD,UAAC,EAAM,CAAC,GAAD,EAAM,CAAC,MAGfb,GAAS,EAAJ,CAAI,OAAC,EAAK,CAAC,EAAD,KAAQ,CAAC,QAAS,CAAC,EAAEA,KAAK,IAIlD,CAAC,iFEhED,IAAMvG,EAAUJ,CAAAA,EAAAA,EAAH,OAAGA,CAAAA,CAAM,SAAAC,IAAA,WAAAC,KAAA,WAAAC,SAAA,KAKrB,CAED,EA3Be+H,OAAC,QA2BDA,EA1BbC,EAAW,EA0BQ,CA1BL,GAAN,IACRC,EAAQ,CAAC,EAAJ,QACL7E,CAAQ,CACR,GAAGC,EACG,GACN,MACE,UAAC,EACC,IAAIA,CADE,CACQ,KACT,CAAC,CACJ,GAAIA,EAAUgC,KAAK,EAAN,CAAW,CAAC,CAAC,iBACT,CAAE2C,EAAW,IAAI,CAClCE,CAD2B,aACb,CAAED,EAAQ,GAAH,CACvB,CAAC,CAAC,SAED7E,GAGP,CAAC,IAHc,sHEsEf,IAAMnD,EAAUJ,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAAsI,EAACJ,CAAM,CAAP,EAAAjI,IAAA,WAAAC,KAAA,WAAAC,SAAA,KAErB,CAEKoI,EAAYvI,CAAAA,EAAAA,EAAAA,CAAAA,CAAH,CAAS,QAAAC,IAAA,aAAAC,KAAA,YAAAC,SAAA,KAEvB,CAEKqI,EAAaxI,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,SAAAC,IAAA,cAAAC,KAAA,YAAAC,SAAA,KAmBxB,CAEKsI,EAAazI,CAAAA,EAAAA,EAAAA,CAAAA,CAAM,CAAT,OAAS,CAAAC,IAAA,cAAAC,KAAA,WAAAC,SAAA,KAQxB,CAEKuI,EAAO1I,CAAAA,CAAH,CAAGA,EAAAA,CAAAA,CAAM,SAAAC,IAAA,QAAAC,KAAA,WAAAC,SAAA,KAUlB,CAED,EA/HA,SAASwI,CAMD,EAAE,IALRC,GADiBD,SA+HJA,OA9HI,GA8HM,GA7HvBE,EAAO,EAAH,KAAU,cACdC,EAAe,GAAG,OAAN,IACZC,EAAY,GAAG,CACf,GADS,EACNvF,CALe,EASZ,CAAEwF,SAAS,CAAEC,CAAAA,CAAiB,CAAG5G,EAAAA,UAAgB,CACrD6G,EAAAA,EACF,CAAC,CAID,MACE,WAAC,EAAO,CAAC,IAAD,IAAS,CAAC,EAAe,KAAK,CAAC,EAAY,EAApB,CAAC,CAAgC,CAAC,EAAhB,CAAC,OAChD,WAAC,EAAS,WACR,WAAC,OAAO,cACN,UAAC,MAAM,IACL,IAAI,CAAC,YAAY,CACjB,MAAM,CAAC,mCAAmC,GAE5C,UAAC,EAAU,CACT,GAAG,CAAC,EAAE,CADG,OAEF,CAAC,MAAM,CACd,GAAG,CAAC,kCAAkC,MAGhC,OAAO,GAAhBL,GACC,CADG,EACH,QAAC,OAAO,cACN,UAAC,MAAM,IACL,IAAI,CAAC,YAAY,CACjB,MAAM,CAAC,qBAA0B,OAAJA,EAAI,WAAY,CAAC,IAEhD,UAAC,EAAI,CACH,CADG,MACI,CAAC,MAAM,CACd,GAAG,CAAC,qBAA0B,OAAJA,EAAI,UAAW,CAAC,EAC1C,GAAG,CAAC,EAAE,SAKd,WAAC,EAAU,CACT,OADS,mBACiB,CAAC,EArCF,CAqCGM,EAC5B,KAAK,CAAC,CAAG,QAtCkC,GAsCvB,CAAEH,CAD4B,CAAC,IACT,GAAX,CAhCnBJ,GAAqBK,CAAAA,CAAe,CAgCH,CAAC,CAAG,CAAE,CAAC,CAAC,MAhCxB,IAkC7B,WAAC,OAAO,cACN,UAAC,MAAM,IACL,IAAI,CAAC,YAAY,CACjB,MAAM,CAAC,oCAAoC,GAE7C,UAAC,EAAU,CACT,GAAG,CAAC,EAAE,CADG,OAEF,CAAC,MAAM,CACd,GAAG,CAAC,mCAAmC,MAGjC,OAAO,GAAhBJ,GACC,WAAC,OAAO,cACN,UAAC,MAAM,IACL,IAAI,CAAC,YAAY,CACjB,MAAM,CAAC,qBAA0B,OAAJA,EAAI,YAAa,CAAC,IAEjD,UAAC,EAAI,CACH,CADG,EACA,CAAC,qBAA0B,OAAJA,EAAI,WAAY,CAAC,EAC3C,OAAO,CAAC,MAAM,CACd,GAAG,CAAC,EAAE,WAOpB,yFC1CA,MA/BA,SAAyB,CAAuC,KAAvC,CAAEO,OAAK,CAAEC,IA+BnBC,QA/B6B,OA+BdA,EAAC,EA/BeC,CAAS,CAAS,CAAvC,EACjBP,EAAYQ,CAAAA,EAAAA,EAAAA,EAAAA,CAAYA,GA2B9B,OAzBAnH,EAAAA,SAAe,CAAC,KACd,IAAIoH,EAAcL,EACA,UAAdJ,GAAyBK,EAC3BI,EAAcJ,EACS,MAFgB,GAE9BL,GAAwBO,GACjCE,GAAcF,CAAAA,EAGXE,EAJyC,CAQ9CC,SAASC,CAJS,cAIM,CAACnE,KAAK,CAACoE,WAAW,CACxC,aACAH,EAEJ,EAAG,CAACL,EAAOC,EAAYE,EAAWP,EAAU,EAG5C3G,EAAAA,SAAe,CAAC,IACP,KACLqH,SAASC,eAAe,CAACnE,KAAK,CAACqE,cAAc,CAAC,aAChD,EACC,EAAE,EAEE,IACT,uHC3CA,IAAMC,EAAiB,YAAH,EAAkB,EAE/B,SAASC,EAAcA,CAI7B,EAAE,GAJ4B,MAADA,IAC5BxG,EAAW,MAAH,WAAG,IAIL,CAACyG,EAAiBC,EAAmB,CAAG5H,EAAAA,QAAc,EAAC,GAAnB,EAAwB,CAAC,GAanE,CAXAA,EAAAA,CAWI,QAXW,CAAC,KACd,IAAM6H,EAASR,IAAH,IAAW,CAACS,aAAa,CAAC,IAAkB,CAAE,CAAC,KAAjBL,GAEtC,EAAC,CAACI,IAAWF,EAAL,CACVC,CAHsD,CAGnC,CAAC,CAACC,EAIzB,CAAC,CAAE,EAJ4B,CAAC,CADE,EAAE,CAY7B,GAXe,EAWf,KAAC,EAAO,CAAC,CAJM,GAIP,CAAM,IAAmB,CAAE,CAAC,CAAC,IAAlBJ,YAAmBvG,EAAL,EAH/B,IAG4C,CAGhD,SAAS6G,EAAaA,CAAAA,UAAAA,YAC3BC,EAAkB,GAGnB,CAJ6B,CAI3B,CACD,MAAO,UAAC,EAAM,CAAC,EAAE,CAAH,EAAqB,KAAK,CAAC,MAAR,CAAC,UAAUA,CAAgB,CAAC,EAC/D,CAEA,IAAMC,EAAUtK,CAAAA,EAAAA,EAAH,CAAGA,CAAM,OAAAC,IAAA,WAAAC,KAAA,YAAAC,SAAA,KA4BrB,CAEKoK,EAASvK,CAAAA,EAAAA,CAAH,CAAGA,CAAAA,CAAM,SAAAC,IAAA,UAAAC,KAAA,YAAAC,SAAA,KAEpB,yGCpED,IAAMqK,EAAiBC,CAAAA,EAAAA,SAAAA,OAAAA,CAAOA,CAC5B,IACE,yDAA0B,CAACC,KAAK,CAAC,IAExB,CAAEC,QAAS,IAAM,KAAK,GAC/B,yCAEAC,KAAK,iBCgFT,MAxEA,SAAyB,CAAiC,MA2CpDC,EA3CmB,QAAErI,CAAM,MAAEsI,EAAO,OAAO,CAAS,CAAjC,EACjBC,EAAmBC,CAAAA,CAuEI,CAvEJA,EAAAA,CAAAA,CAAmBA,GAEtC,CAACC,EAAoBC,EAAsB,CAC/C7I,EAAAA,QAAc,CAAC,KAGX8I,EAC8B,UAAlC,OAAOJ,EAAiB/C,KAAK,EACM,UAAnC,OAAO+C,EAAiB9C,MAAM,EAC9B8C,EAAiB/C,KAAK,CAAG+C,EAAiB9C,MAAM,CAE5CmD,EAAmC/I,EAAAA,OAAa,CAAC,IAEnD,iBAAO0I,EAAiB/C,KAAK,EACM,UAAnC,OAAO+C,EAAiB9C,MAAM,CAGvB,CAAC,EAAG,IAAK,CAGdkD,EACK,CAACJ,EAAiB/C,KAAK,CAAG,CADnB,CACsB+C,EAAiB9C,MAAM,CAAC,CAErD,CAAC,EAAGoD,KAAKC,GAAG,CAAC,IAAKP,EAAiB9C,MAAM,EAAE,CAEnD,CAACkD,EAAYJ,EAAiB/C,KAAK,CAAE+C,EAAiB9C,MAAM,CAAC,QAkBhE,CAXAsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAWA,CAAC,KACV,IAAIC,EAAwC,GAArBP,EAA2B,EAE9CO,EAAmB,GAAG,CACxBA,GAAmB,EAGrBN,EAAsBM,EACxB,EAZEP,CAYCQ,CAZoB,GAAgB,WAAXjJ,GAAgC,UAATsI,EAC7C,IACA,MAaFtI,SAAoB,IAEf,MAGPqI,EAFoB,WAAW,CAAtBrI,EAEO,EAGS,UAATsI,EAAmBG,EAAqB,GAIxD,UAACS,EAAAA,CAAQA,CAAAA,UACP,UAAClB,EAAcA,CACbmB,SAAUP,EACVQ,ED/DsB,SC6DTpB,OAEK,EAClBqB,YAAa,IACbC,SAAU,GACVC,gBAAiB,GACjBC,MAAOb,EAAa,CAAC,GAAK,CAAC,GAC3Bc,OAAQ,EACRC,WAAY,GACZrB,cAAeA,MAIvB,gEEjFO,IAAMsB,EAAgB,KAE3B,GAAyB,aAAa,OAA3BC,UACT,OAAO,KAGT,GAE4B,CAD1B,YACA,CADa,MACNC,gBACoC,CAAC,GAC5C,CADAD,UAAUE,SAAS,CAACC,OAAO,CAAC,WAE5B,MAAO,UAIT,GAAM1I,CAAF,CAAC,KAAQuI,SAAS,CAACI,KAAK,CAC1B,CAD4B,KACrB,QAKT,GAFiBJ,CAA2C,UAE9C,IAFaE,SAAS,CAACC,OAAO,CAAC,UAG3C,MAAO,SAIT,IAAME,EACsC,CAAC,IAA3CL,CACA,SADUE,IACG,KADM,CAACC,OAAO,CAAC,WAE5B,eAAeG,IAAI,CAAC7I,OAAO8I,WAAW,GAE7BC,EADT,SAAWA,CAAC,2BAIV,CAAC/I,MAAM,CAAC,MAAS,EAEI,EADnB,WACC,EADY,KACLgJ,QACO,MACP,CAAC,MAAS,CAACC,gBAAAA,EAPZC,QAAQ,GASfC,EACJZ,UAAUE,SAAS,CAACW,KAAK,CAAC,UAC1Bb,UAAUE,SAAS,CAACW,KAAK,CAAC,WAC5B,GAAIR,GAAYO,EACd,MAAO,QADuB,CAMhC,IAAME,EAA6B,CAAC,CAACxD,GAAxB,MAAiCyD,IAAvB,GAAG,KAAgC,CAA3B,OAC/B,EACS,IADC,CAKK,CAACD,GAAUrJ,KAAF,CAAC,CAAQuJ,UAAU,CAElC,OAGF,IACT,EAAE,SCjEsBxH,IACtB,GAAM,CAACD,EAAS0H,EAAW,CAAGhL,EAAAA,QAAc,CAAiB,MAM7D,OAJAA,EAAAA,SAAe,CAAC,KACdgL,EAAWlB,IACb,EAAG,EAAE,EAEExG,CACT,EAJ4BwG,8DC2B5B,MA3BA,SAAS5J,CACoC,KAC3C,SAAE+K,GAAU,CAAI,OAAElF,CAAK,OAyBK7F,EAAC,MAzBJgL,GAAgB,CAAI,CAAW,CAAxD,uDAA2D,CAAC,EAE5DlL,EAAAA,SAAe,CAAC,SAiBdD,EAhBA,GAAKkL,CAAD,EAIJ,GAAqB,GAJP,OAIV,OAAOlF,GAAsBA,EAAQ,EAAG,CAC1C,IAAMoF,EAAY3J,OAAO4J,UAAU,CAAC,SAClCrL,CAAgB,SAAhBA,EAAAA,EAASsL,OAAAA,GAATtL,KAAAA,IAAAA,GAAAA,EAAkBuL,KAAK,CAAC,eACtBJ,CACF,EACF,EAAGnF,GAEH,MAAO,KACLvE,OAAO+J,YAAY,CAACJ,EACtB,CACF,CAEgB,QAAhBpL,EAAAA,EAASsL,OAAAA,GAATtL,KAAAA,OAAAA,EAAkBuL,KAAK,CAAC,eACtBJ,CACF,GACF,EAAG,CAACnL,EAAUkL,EAASlF,EAAOmF,EAAc,CAC9C,gECZA,MAnBA,SAASrI,CAAmC,EAC1C,GAAM,CAAC2I,EAAOC,EAAS,CAAGzL,EAAAA,KAkBb6C,GAlB2B,CAAC,GAEnC6I,EAAgB1L,EAAAA,MAAY,CAAC,GAgBD6C,CAhBO4I,CAgBN,CAhBe,GAAOE,EAAI,IAa7D,OAVA3L,EAAAA,SAAe,CAAC,KAId,GAAc,OAAV+F,EAAgB,CAClB,IAAInE,EAAKgK,YAAYC,SAJdA,EACPH,EAAcL,OAAO,EACvB,EAE6BtF,GAC3B,MAAO,IAAM+F,cAAclK,EAC7B,CACF,EAAG,CAACmE,EAAM,EAEHyF,CACT,gECQA,MAzBoB,CAACO,EAAoBhG,KACvC,IAAMiG,EAAahM,EAAAA,MAAY,CAAgB,KAwBlCkJ,CAvBPwC,EAAgB1L,EAAAA,MAAY,CAAC+L,CAuBV,EAHzB,OAlBA/L,EAAAA,SAAe,CAAC,KACd0L,EAAcL,OAAO,CAAGU,CAC1B,GAEA/L,EAAAA,SAAe,CAAC,KAGd,GAAI,UAA2B,OAApB+F,EAGT,OAFAiG,EAAWX,OAAO,CAAG7J,OAAOoK,WAAW,CAACC,IAHvBH,EAAcL,OAAO,GAGQtF,GAEvC,KACDiG,EAAWX,OAAO,EAAE,OACfS,aAAa,CAACE,EAAWX,OAAO,CAE3C,CAEJ,EAAG,CAACtF,EAAM,EAEHiG,EAAWX,OAAO,gECpBZ,SAAS3L,QACtB8C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAEM,CAACS,CAFiB,CAEVgJ,EAAS,CAAGjM,EAAAA,QAAc,CAACwC,GAezC,MAAO,CAACS,EAbOjD,EAAAA,WAAiB,CAAC,IAC/BiM,EAAS,GAIP,WAAI,OAAOC,EACFA,EAGF,CAACC,EAEZ,EAAG,EAAE,EAEiB,2EC0CxB,MAhDkC,KAChC,GAAM,CAACzD,EAAkB0D,EAAoB,CAC3CpM,EAAAA,QAAc,CAAmB,CAC/B2F,EA6CS0G,SA7CFC,EACP1G,YAAQ0G,EACRC,EA2CmC,UA3CtBD,MACf,GAuCF,OArCAtM,EAAAA,SAAe,CAAC,KACd,IAAMwM,EAAoBnF,SAASoF,aAAa,CAAC,OACjDD,EAAkBrJ,KAAK,CAACuJ,QAAQ,CAAG,OAEnCrF,SAASsF,IAAI,CAACC,WAAW,CAACJ,GAM1B,IAAMK,EAAQ,GAJGC,EAIEJ,SAHjBlL,OAAOuL,gBAAgB,CAACP,GAAmBE,QAAQ,EAKrDN,EAAoB,CAClBzG,MAAOnE,OAAOwL,UAAU,CAAGH,EAC3BjH,OAAQpE,OAAOyL,WAAW,CAAGJ,EAC7BN,YAAalF,SAASC,eAAe,CAACiF,WAAW,CAAGM,CACtD,GAEA,IAAMK,EAAeC,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,KAC5Bf,EAAoB,CAClBzG,MAAOnE,OAAOwL,UAAU,CAAGH,EAC3BjH,OAAQpE,OAAOyL,WAAW,CAAGJ,EAC7BN,YAAalF,SAASC,eAAe,CAACiF,WAAW,CAAGM,CACtD,EACF,EAAG,KAIH,OAFArL,OAAO4L,gBAAgB,CAAC,SAAUF,GAE3B,KAEL,GAAI,CACF7F,SAASsF,IAAI,CAACU,WAAW,CAACb,GAC1BhL,OAAO8L,mBAAmB,CAAC,SAAUJ,EACvC,CAAE,MAAOvK,EAAK,CAAC,CACjB,CACF,EAAG,EAAE,EAEE+F,CACT,kME5BA,qCAAwBN,wBAhCH,QAgCN,SAASA,EACtBmF,CAA6C,CAC7CC,CAA2B,MAehBC,EAbX,IAAMC,EAAsC,CAAC,CAEf,YAAY,CAAtC,OAAOH,GACTG,GAAgBC,MAAM,CAAGJ,CAAAA,EAG3B,IAAME,EAAgB,CACpB,GAAGC,CAAe,CAClB,GAAGF,CAAO,EAGZ,MAAOI,CAAAA,EAAAA,EAAAA,OAAAA,EAAS,CACd,GAAGH,CAAa,CAChBI,OAAO,QAAEJ,EAAAA,EAAcK,iBAAAA,EAAiB,OAA/BL,EAAiCI,OAC5C,EACF,8UCvCgBE,qCAAAA,aAXkB,OAW3B,SAASA,EAAa,CAAuC,EAAvC,WAAEC,CAAM,UAAE9M,CAAQ,CAAqB,CAAvC,EAC3B,GAAsB,aAAlB,OAAOM,OACT,MAAM,IAAIyM,EAAAA,iBAAiB,CAACD,GAG9B,OAAO9M,CACT,mHCwDA,6DA5EyC,WACZ,WAEC,OAK9B,SAASgN,EACPC,CAA4D,EAW5D,MAAO,CACL7F,QAFiB6F,GAAO,YAAaA,EAGhCA,EAA2B7F,OAAO,CAClC6F,CACP,CACF,CAEA,IAAMC,EAAiB,CACrBT,OAAQ,IAAMU,QAAQC,OAAO,CAACJ,EAAc,IAAM,OAClDK,QAAS,KACThG,KAAK,CACP,EA6CA,EApCA,SAASqF,CAAiC,EACxC,IAAMY,EAAO,CAAE,GAAGJ,CAAc,CAAE,GAAGZ,CAAO,EACtCiB,EAAOC,CAAAA,EAAAA,EAAAA,IAAAA,EAAK,IAAMF,CAAlBC,CAAuBd,MAAM,GAAGgB,IAAI,CAACT,IACrCU,EAAUJ,EAAKD,OAAO,CAE5B,SAASM,EAAkBC,CAAU,EACnC,IAAMC,EAAkBH,EACtB,UAACA,EAAAA,CAAQI,MADaJ,KACF,EAAMK,WAAW,EAAM5O,MAAO,OAChD,KAGE6O,EAAsB,CAACV,EAAKjG,GAAG,EAAI,CAAC,CAACiG,EAAKD,OAAO,CACjDY,EAAOD,EAAsBE,EAAAA,QAAQ,CAAGC,EAAAA,QAAQ,CAEhDnO,EAAWsN,EAAKjG,GAAG,CACvB,iCAEqB,aAAlB,OAAO/G,OACN,UAAC8N,EAAAA,aAAa,EAACC,UAAWf,EAAKX,OAAO,GACpC,KACJ,UAACY,EAAAA,CAAM,GAAGK,CAAK,MAGjB,UAACf,EAAAA,YAAY,EAACC,OAAO,wBACnB,UAACS,EAAAA,CAAM,GAAGK,CAAK,KAInB,MAAO,UAACK,EAAAA,CAfiE,GAAvDD,EAAsB,CAAEM,SAAUT,CAAgB,EAAI,CAAC,CAe3D,GAAGU,OAAYvO,EAAH,CAC5B,CAIA,OAFA2N,EAAkBa,WAAW,CAAG,oBAEzBb,CACT,yHCnEgBS,qCAAAA,wBALQ,WAES,WACH,OAEvB,SAASA,EAAc,CAI7B,EAJ6B,cAC5BC,CAAS,CAGV,CAJ6B,EAM5B,GAAI,aAA+B,OAAxB/N,OACT,OAAO,KAGT,IAAMmO,EAAYC,EAAAA,gBAAgB,CAACC,QAAQ,GAC3C,QAAkBvD,IAAdqD,EACF,KAD2B,EACpB,KAGT,IAAMG,EAAW,EAAE,CAInB,GAAIH,EAAUI,qBAAqB,EAAIR,EAAW,CAChD,IAAMS,EAAWL,EAAUI,qBAAqB,CAChD,IAAK,IAAME,KAAOV,EAAW,CAC3B,GAAI,CAACS,CAAQ,CAACC,EAAI,CAAE,SACpB,IAAMC,EAASF,CAAQ,CAACC,EAAI,CAACE,KAAK,CAClCL,EAASM,IAAI,IAAIF,EACnB,CACF,QAEA,GAA2B,CAAvBJ,EAASxO,MAAM,CACV,KAIP,+BACGwO,EAASvN,GAAG,CAAE8N,IACb,IAAMC,EAAUX,EAAUY,WAAW,CAAC,UAASC,GAAAA,EAAAA,aAAAA,EAAcH,UAC/CA,EAAMI,EAIhBC,MAJwB,CAAC,QAMzB,UAACC,OAAAA,CAGCC,WAAW,UACXN,KAAMA,EACNO,IAAI,aACJC,GAAG,SALET,IAUTU,CAAAA,EAAAA,EAAAA,OAAAA,EAAQT,EAAM,CACZQ,GAAI,SACJE,cAAe,KACjB,GACO,KAEX,IAGN,+DCnEA,aACA,wDACA,YAAoB,mBAAsB,KAC1C,mBACA,kBAA0B,uCAC1B,CACA,QACA,EAAG,sBACH,CAeA,yEAwHA,MAvHA,cACA,IANA,EAMA,QAsHe,GAtHf,KAAmC,EACnC,WACA,iBACA,iBACA,iBACA,iBACA,gBACA,cACA,gBACA,WACA,EA1BA,cACA,oBACA,SACA,sBAAyB,2BACzB,6BACA,WAEA,QACA,EAkBA,KACA,EAAwB,QAAqB,OAC7C,EAAkB,QAAqB,KACvC,EAAwB,UAAuB,OAC/C,OACA,OACA,EAAyB,UAAuB,OAChD,OACA,OACA,aACA,sBAEA,aAEA,WAEA,uBAGA,OACA,EApCA,EAsCA,WAgBA,OAfI,qCAAgB,kBACpB,eACA,KAGA,0DACA,aACA,iBACA,2BACA,SACA,OACA,QACA,CAAS,IACT,CACA,CAAK,EACL,WACA,YACA,CACA,CAAG,CAxDD,eAAS,OA4DT,WAAwB,YAC1B,cACA,mBACA,2BACA,SACA,QACA,CAAO,KASP,CAAG,sBAGD,WAAwB,YAC1B,IACA,YAEA,UACA,UAGA,CAAG,UACH,MAAa,aAA0B,aACvC,YACA,OAEA,8BAGA,GACA,SAEA,gBACA,uBAEA,aACA,CAAG,UACH,EAAa,aAA0B,aACvC,GAGA,SACA,CAAG,MACH,EAAc,aAA0B,aACxC,GAGA,UACA,CAAG,MAOH,MANA,IACA,QACA,OACA,QACA,UACA,CAAG,cC5IH,WAAkB,0aCAlB,WAAkB,kPCAlB,WAAkB,kDCAlB,WAAkB,8BCAlB,WAAkB,gICAlB,WAAkB,oECAlB,WAAkB,8CCAlB,WAAkB,0GCAlB,WAAkB,oDCAlB,WAAkB","sources":["webpack://_N_E/?3966","webpack://_N_E/../../src/icons/arrow-right.ts","webpack://_N_E/../../src/icons/github.ts","webpack://_N_E/../../src/icons/linkedin.ts","webpack://_N_E/./src/app/subscribe/DedicatedSubscribeForm.tsx","webpack://_N_E/./src/components/ButtonPoofy/ButtonPoofy.tsx","webpack://_N_E/./src/components/ButtonPoofy/index.ts","webpack://_N_E/./src/components/ButtonRainbow/use-rainbow.hook.ts","webpack://_N_E/./src/components/ButtonRainbow/ButtonRainbow.tsx","webpack://_N_E/./src/components/ButtonRainbow/index.ts","webpack://_N_E/./src/components/Checkbox/Checkbox.tsx","webpack://_N_E/./src/components/Checkbox/index.ts","webpack://_N_E/./src/components/FadeIn/FadeIn.tsx","webpack://_N_E/./src/components/FadeIn/index.ts","webpack://_N_E/./src/components/JericaMascot/JericaMascot.tsx","webpack://_N_E/./src/components/OverscrollColor/OverscrollColor.tsx","webpack://_N_E/./src/components/SkipNav/SkipNav.tsx","webpack://_N_E/./src/components/ConfettiGeyser/index.ts","webpack://_N_E/./src/components/SubscribeGeyser/SubscribeGeyser.tsx","webpack://_N_E/./src/components/SubscribeGeyser/index.ts","webpack://_N_E/./src/helpers/browser.helpers.ts","webpack://_N_E/./src/hooks/use-browser.ts","webpack://_N_E/./src/hooks/use-focus-on-mount.ts","webpack://_N_E/./src/hooks/use-incrementing-number.ts","webpack://_N_E/./src/hooks/use-interval.ts","webpack://_N_E/./src/hooks/use-toggle.ts","webpack://_N_E/./src/hooks/use-window-dimensions.ts","webpack://_N_E/./node_modules/.pnpm/next@15.1.3_@babel+core@7.24.6_react-dom@19.0.0-rc-f994737d14-20240522_react@19.0.0-rc-f99473_henqbhbmro4if2cwhftw2bam2a/node_modules/next/dist/api/app-dynamic.js","webpack://_N_E/../../src/shared/lib/app-dynamic.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/loadable.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/preload-chunks.tsx","webpack://_N_E/./node_modules/.pnpm/use-sound@5.0.0_react@19.0.0-rc-f994737d14-20240522/node_modules/use-sound/dist/use-sound.esm.js","webpack://_N_E/./src/app/subscribe/DedicatedSubscribeForm.linaria.module.css","webpack://_N_E/./src/app/subscribe/page.linaria.module.css","webpack://_N_E/./src/components/ButtonPoofy/ButtonPoofy.linaria.module.css","webpack://_N_E/./src/components/ButtonRainbow/ButtonRainbow.linaria.module.css","webpack://_N_E/./src/components/Checkbox/Checkbox.linaria.module.css","webpack://_N_E/./src/components/ColorModeSpecificContent/ColorModeSpecificContent.linaria.module.css","webpack://_N_E/./src/components/FadeIn/FadeIn.linaria.module.css","webpack://_N_E/./src/components/JericaMascot/JericaMascot.linaria.module.css","webpack://_N_E/./src/components/SkipNav/SkipNav.linaria.module.css","webpack://_N_E/./src/components/Spicy/Spicy.linaria.module.css"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/app/subscribe/DedicatedSubscribeForm.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/ColorModeSpecificContent/ColorModeSpecificContent.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconBluesky.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconColorMode.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconRSS.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconSearch.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconSpeaker.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/JericaMascot/JericaMascot.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Link/Link.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/MaxWidthWrapper/MaxWidthWrapper.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Logo/Logo.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/OverscrollColor/OverscrollColor.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/Affirmation.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/FooterLink.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/FooterCategoryList.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/app/subscribe/page.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/FooterNewsletterForm.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/IconLink.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/SiteFooter.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteHeader/SiteHeader.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"SkipNavTrigger\",\"SkipNavTarget\"] */ \"/vercel/path0/src/components/SkipNav/SkipNav.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Spicy/Spicy.linaria.module.css\");\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Github\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCIgLz4KICA8cGF0aCBkPSJNOSAxOGMtNC41MSAyLTUtMi03LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/github\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=github instead. This icon will be removed in v1.0\n */\nconst Github = createLucideIcon('Github', [\n [\n 'path',\n {\n d: 'M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4',\n key: 'tonef',\n },\n ],\n ['path', { d: 'M9 18c-4.51 2-5-2-7-2', key: '9comsn' }],\n]);\n\nexport default Github;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Linkedin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjQiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/linkedin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=linkedin instead. This icon will be removed in v1.0\n */\nconst Linkedin = createLucideIcon('Linkedin', [\n [\n 'path',\n {\n d: 'M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z',\n key: 'c2jq9f',\n },\n ],\n ['rect', { width: '4', height: '12', x: '2', y: '9', key: 'mk3on5' }],\n ['circle', { cx: '4', cy: '4', r: '2', key: 'bt5ra8' }],\n]);\n\nexport default Linkedin;\n","'use client';\n\nimport * as React from 'react';\nimport { styled } from '@linaria/react';\n\nimport { BREAKPOINTS } from '@/constants';\nimport {\n useNewsletterSignup,\n useConfetti,\n} from '@/helpers/newsletter.helpers';\nimport useFocusOnMount from '@/hooks/use-focus-on-mount';\nimport useToggle from '@/hooks/use-toggle';\n\nimport TextLink from '@/components/Link/TextLink';\nimport Spinner from '@/components/Spinner';\nimport Checkbox from '@/components/Checkbox';\nimport ColorModeContainer from '@/components/ColorModeContainer';\nimport ButtonRainbow from '@/components/ButtonRainbow';\nimport SubscribeGeyser from '@/components/SubscribeGeyser';\nimport SubscribeError from '@/components/SubscribeError';\n\n// TODO: When I have an amazing newsletter issue, update this!\n// const NEWSLETTER_URL = '/email/2024-07-13-deadmau5';\nconst NEWSLETTER_URL = null;\n\nfunction DedicatedSubscribeForm() {\n const [constantConfetti, toggleConstantConfetti] = useToggle(false);\n\n const {\n confettiStatus,\n handleLoadConfetti,\n handleTriggerConfetti,\n } = useConfetti();\n\n const inputRef = React.useRef(null);\n\n useFocusOnMount(inputRef);\n\n const {\n status,\n emailFields,\n error,\n numOfEncounteredErrors,\n emailId,\n honeypotElem,\n handleSubmit,\n } = useNewsletterSignup({\n callbacks: {\n onStart: handleLoadConfetti,\n onSuccess: handleTriggerConfetti,\n },\n });\n\n if (status === 'success') {\n return (\n <>\n \n \n \n Welcome aboard!\n \n You’re all set! In a few moments, you’ll receive an\n email from me containing the Jerica Starter Pack, a\n collection of my most popular content. 😄\n \n \n \n Keep the party going!\n \n \n \n \n \n \n );\n }\n\n return (\n <>\n Enter your email to join:\n\n \n {honeypotElem}\n\n \n\n \n \n \n \n {status === 'submitting' ? (\n \n ) : (\n 'Submit'\n )}\n \n \n \n\n \n \n If you change your mind, unsubscribing is a simple\n 1-click affair, no hoops to jump through.\n {!!NEWSLETTER_URL && (\n <>\n {' '}\n \n Check out a recent issue\n \n .\n \n )}\n \n }\n />\n \n \n \n \n );\n}\n\nconst PrefixParagraph = styled.p`\n font-size: 1.125rem;\n margin-bottom: 2rem;\n`;\n\nconst Wrapper = styled.div`\n max-width: 38rem;\n margin-top: 16px;\n margin-left: -16px;\n\n @media ${BREAKPOINTS.smAndSmaller} {\n margin-left: 0;\n }\n`;\n\nconst SuccessWrapper = styled(Wrapper)`\n margin-top: 64px;\n animation: swoopIn 900ms both cubic-bezier(0.17, 0.67, 0.39, 0.99);\n animation-delay: 250ms;\n\n @keyframes swoopIn {\n from {\n transform: translateX(-64px);\n opacity: 0;\n }\n }\n`;\n\nconst Label = styled.label`\n display: none;\n`;\n\nconst EmailInput = styled.input`\n display: block;\n flex: 1;\n height: 48px;\n padding-left: 8px;\n border: none;\n background: transparent;\n font-size: 1rem;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n @media ${BREAKPOINTS.smAndLarger} {\n font-size: 1.125rem;\n }\n`;\n\nconst InputOuterWrapper = styled.div`\n position: relative;\n\n html[data-color-mode='light'] &::before {\n content: '';\n position: absolute;\n inset: -10px;\n background: hsl(var(--color-background-values) / 1);\n border-radius: 12px;\n }\n`;\n\nconst InputWrapper = styled(ColorModeContainer)`\n position: relative;\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--color-background);\n border-radius: 9px;\n padding: 8px;\n\n html[data-color-mode='light'] & {\n box-shadow:\n -06px 0.6px 1px -7px hsl(210deg 100% 20% / 0.04),\n -1.4px 1.4px 2.5px -7px hsl(210deg 100% 20% / 0.056),\n -2.6px 2.6px 4.6px -7px hsl(210deg 100% 20% / 0.07),\n -5px 4.7px 8.3px -7px hsl(210deg 100% 20% / 0.084),\n -8px 8.8px 15.5px -7px hsl(210deg 100% 20% / 0.1),\n -15px 21px 37px -7px hsl(210deg 100% 20% / 0.14);\n }\n`;\n\nconst SubmitButton = styled(ButtonRainbow)`\n width: 100px;\n font-size: 1rem;\n\n && {\n /* Arg busted class orders again! */\n min-height: 3rem;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n @media ${BREAKPOINTS.smAndLarger} {\n width: 125px;\n height: 48px;\n font-size: 1.125rem;\n }\n`;\n\nconst AfterForm = styled.div`\n /* Necessary to prevent a layout shift when toggling between Disclaimer and ErrorMessage */\n min-height: 3rem;\n margin-top: 24px;\n padding: 0 8px;\n`;\n\nconst Disclaimer = styled.p`\n margin: 0;\n font-size: 0.9375rem;\n text-align: center;\n opacity: 0.75;\n text-wrap: balance;\n`;\n\nconst ErrorMessage = styled(SubscribeError)`\n --color-primary: var(--color-error);\n\n p {\n margin: 0;\n font-size: 0.9375rem;\n text-align: center;\n opacity: 1;\n text-wrap: balance;\n color: var(--color-error);\n }\n`;\n\nconst SuccessMessage = styled(ColorModeContainer)`\n position: relative;\n padding: 16px;\n max-width: 38rem;\n border-radius: 8px;\n\n html[data-color-mode='light'] & {\n box-shadow:\n -06px 0.6px 1px -7px hsl(210deg 100% 20% / 0.04),\n -1.4px 1.4px 2.5px -7px hsl(210deg 100% 20% / 0.056),\n -2.6px 2.6px 4.6px -7px hsl(210deg 100% 20% / 0.07),\n -5px 4.7px 8.3px -7px hsl(210deg 100% 20% / 0.084),\n -8px 8.8px 15.5px -7px hsl(210deg 100% 20% / 0.1),\n -15px 21px 37px -7px hsl(210deg 100% 20% / 0.14);\n }\n`;\n\nconst Paragraph = styled.p`\n font-size: 1.125rem;\n text-align: center;\n`;\n\nconst PseudoHeading = styled(Paragraph)`\n font-family: var(--font-family-spicy);\n font-size: 1.5rem;\n margin-bottom: 1rem;\n margin-top: 1.5rem;\n`;\n\nconst ConstantConfettiCheckboxWrapper = styled.label`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n margin-top: 32px;\n margin-bottom: 48px;\n margin-inline: auto;\n width: fit-content;\n padding: 16px;\n border: 1px dashed var(--color-gray-300);\n border-radius: 4px;\n animation: fadeIn 500ms 2000ms both;\n font-size: 1.125rem;\n font-weight: var(--font-weight-medium);\n cursor: pointer;\n`;\n\nconst AirMailBorder = styled.div`\n --red: hsl(0deg 85% 70%);\n --blue: hsl(210deg 85% 65%);\n --blue-darker: hsl(225deg 40% 20%);\n height: 12px;\n border-radius: 4px;\n margin: -12px;\n background: repeating-linear-gradient(\n 45deg,\n var(--red) 0px 15px,\n var(--color-background) 15px 25px,\n var(--blue) 25px 40px,\n var(--color-background) 40px 50px\n );\n`;\n\nconst TopBorder = styled(AirMailBorder)`\n margin-bottom: 0;\n`;\nconst BottomBorder = styled(AirMailBorder)`\n margin-top: 0;\n`;\n\nexport default DedicatedSubscribeForm;\n","import * as React from 'react';\nimport { styled } from '@linaria/react';\n\nfunction ButtonPoofy({\n children,\n ...delegated\n}: React.HTMLAttributes) {\n return (\n \n );\n}\n\nconst Button = styled.button`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 6px;\n color: white;\n font-weight: var(--font-weight-medium);\n font-size: 1.125rem;\n text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15);\n background: linear-gradient(\n 15deg,\n var(--poofy-dark, hsl(210deg 30% 10%)),\n var(--poofy-light, hsl(250deg 40% 35%))\n );\n\n &:focus-visible {\n outline-color: var(--color-primary);\n outline-offset: 4px;\n }\n\n &:disabled,\n &[data-disabled='true'] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:before {\n content: '';\n position: absolute;\n z-index: 1;\n top: 2px;\n left: 6px;\n right: 6px;\n height: 20%;\n background: linear-gradient(\n hsl(0deg 0% 100% / 0.3),\n hsl(0deg 0% 100% / 0)\n );\n border-radius: 20px;\n border-top-left-radius: 20px 14px;\n border-bottom-left-radius: 100px 30px;\n border-top-right-radius: 20px 14px;\n border-bottom-right-radius: 100px 30px;\n pointer-events: none;\n }\n\n &:after {\n content: '';\n position: absolute;\n z-index: 1;\n bottom: 0px;\n left: 0;\n right: 0;\n height: 30%;\n background: linear-gradient(\n hsl(0deg 0% 0% / 0),\n hsl(0deg 0% 0% / 0.17)\n );\n border-radius: 0px 0px 4px 4px;\n pointer-events: none;\n }\n\n &:active {\n filter: brightness(90%);\n }\n\n &:active:before {\n top: 0;\n left: 0;\n right: 0;\n height: 30%;\n background: linear-gradient(\n hsl(0deg 0% 0% / 0.17),\n hsl(0deg 0% 0% / 0)\n );\n border-radius: 4px 4px 0px 0px;\n }\n\n &:active:after {\n top: revert;\n left: 2px;\n right: 2px;\n bottom: 2px;\n height: 20%;\n background: linear-gradient(\n hsl(0deg 0% 100% / 0),\n hsl(0deg 0% 100% / 0.3)\n );\n border-radius: 20px;\n border-bottom-left-radius: 10px 14px;\n border-top-left-radius: 100px 30px;\n border-bottom-right-radius: 10px 14px;\n border-top-right-radius: 100px 30px;\n }\n`;\n\nconst ButtonContent = styled.span`\n ${Button}:active & {\n transform: scale(0.9);\n }\n`;\n\nexport default ButtonPoofy;\n","export { default } from './ButtonPoofy';\n","import React from 'react';\n\nimport { range } from '@/utils';\nimport useIncrementingNumber from '@/hooks/use-incrementing-number';\n\nconst rainbowColors = [\n 'hsl(230deg, 100%, 45%)', // blue\n 'hsl(240deg, 100%, 45%)', // indigo\n 'hsl(260deg, 100%, 55%)', // violet\n 'hsl(325deg, 100%, 48%)', // pink\n 'hsl(325deg, 100%, 48%)', // pink\n 'hsl(325deg, 100%, 48%)', // pink\n 'hsl(260deg, 100%, 55%)', // violet\n];\nconst paletteSize = rainbowColors.length;\nconst WINDOW_SIZE = 3;\n\n// During compile-time build, we have to assume no browser support.\n// On mount, we'll check if `CSS.registerProperty` exists\nconst hasBrowserSupport =\n typeof window !== 'undefined'\n ? typeof window.CSS.registerProperty === 'function'\n : false;\n\nconst getColorPropName = (id: string, index: number) =>\n `--magic-rainbow-color-${id}-${index}`;\n\nconst useRainbow = ({\n intervalDelay = 2000,\n}: {\n intervalDelay?: number;\n}) => {\n const id = React.useId().replace(/:/g, '');\n\n const prefersReducedMotion =\n typeof window === 'undefined'\n ? { matches: true }\n : window.matchMedia('(prefers-reduced-motion: no-preference)');\n\n const isEnabled = hasBrowserSupport && prefersReducedMotion.matches;\n\n // Register all custom properties\n React.useEffect(() => {\n if (!isEnabled) {\n return;\n }\n\n range(0, WINDOW_SIZE).map((index) => {\n const name = getColorPropName(id, index);\n const initialValue = rainbowColors[index];\n\n try {\n CSS.registerProperty({\n name,\n initialValue,\n syntax: '',\n inherits: false,\n });\n } catch (err) {}\n });\n }, [id, isEnabled]);\n\n const intervalCount = useIncrementingNumber(intervalDelay);\n\n return range(0, WINDOW_SIZE).reduce((acc, index) => {\n const effectiveIntervalCount = isEnabled ? intervalCount : 0;\n\n const name = getColorPropName(id, index);\n const value =\n rainbowColors[(effectiveIntervalCount + index) % paletteSize];\n\n return {\n ...acc,\n [name]: value,\n };\n }, {});\n};\n\nexport default useRainbow;\n","'use client';\n\n/*\n NOTE: This component used to have a separate wrapper, PoofyRainbowButton, that added a glassy effect to the button. I was using that in all but 1 of the places I used the ButtonRainbow, so I merged them. This component includes the PoofyRainbowButton styling.\n*/\nimport * as React from 'react';\nimport { styled } from '@linaria/react';\n\nimport useBrowser from '@/hooks/use-browser';\n\nimport ButtonPoofy from '@/components/ButtonPoofy';\n\nimport useRainbow from './use-rainbow.hook';\n\ninterface Props\n extends React.ButtonHTMLAttributes {\n intervalDelay?: number;\n}\n\nfunction ButtonRainbow({\n children,\n intervalDelay = 1300,\n className,\n style = {},\n ...delegated\n}: Props) {\n const transitionDelay = intervalDelay * 1.25;\n\n const colors = useRainbow({ intervalDelay });\n\n // Frustratingly, the transition doesn't work in Firefox, despite the APIs being supported according to caniuse. I suspect maybe this is a bug in the latest Firefox release, since this isn't a regression between old blog and new.\n // For now, we’ll disable this in Firefox. In 2025, I should see if I can remove this:\n const browser = useBrowser();\n\n const colorKeys = Object.keys(colors);\n\n return (\n \n {children}\n \n );\n}\n\nconst Button = styled(ButtonPoofy)`\n min-height: 3.75rem;\n backface-visibility: hidden;\n background: var(--background);\n\n &[data-disable-transition='true'] {\n background: hsl(240deg, 80%, 40%);\n }\n`;\n\nexport default ButtonRainbow;\n","export { default } from './ButtonRainbow';\n","'use client';\n\nimport * as React from 'react';\nimport { styled } from '@linaria/react';\nimport { useSpring, animated } from 'react-spring';\n\nimport useSound from '@/hooks/use-sound';\n\nconst BORDER_WIDTH = 2;\n\ninterface Props extends React.HTMLAttributes {\n size?: number;\n checked: boolean;\n label?: string;\n onChange: (event: React.ChangeEvent) => void;\n}\n\nconst Checkbox = ({\n id,\n size = 18,\n checked,\n label,\n onChange,\n ...delegated\n}: Props) => {\n const [active, setActive] = React.useState(false);\n const generatedId = React.useId();\n const actualId = id || `checkbox-${generatedId}`;\n\n const springConfig = {\n tension: 400,\n friction: 22,\n clamp: !checked,\n };\n\n // We want the outline to shrink by 4px, regardless of `size`.\n const shrinkRatio = size / (size + 4);\n // We want the filling to cancel out the shrinking of the outline.\n const fillRatio = 1 / shrinkRatio;\n\n const filledScale = checked ? (active ? fillRatio : 1) : 0;\n const filledSpring = useSpring({\n transform: `scale(${filledScale})`,\n config: springConfig,\n });\n\n const outlineScale = active ? shrinkRatio : 1;\n const outlineSpring = useSpring({\n transform: `scale(${outlineScale})`,\n config: springConfig,\n });\n\n const [playActive] = useSound('/sounds/pop-down.mp3', {\n volume: 0.25,\n });\n const [playOn] = useSound('/sounds/pop-up-on.mp3', {\n volume: 0.25,\n });\n const [playOff] = useSound('/sounds/pop-up-off.mp3', {\n volume: 0.25,\n });\n\n return (\n \n {\n setActive(true);\n playActive();\n }}\n onMouseUp={() => {\n setActive(false);\n\n if (checked) {\n playOff();\n } else {\n playOn();\n }\n }}\n onChange={onChange}\n />\n \n \n \n \n\n {label && }\n \n \n );\n};\n\nconst Wrapper = styled.div`\n position: relative;\n`;\n\nconst RealInput = styled.input`\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n appearance: none;\n cursor: pointer;\n`;\n\nconst VisibleContents = styled.div`\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n`;\n\nconst VisibleBox = styled(animated.div)`\n position: relative;\n border: ${BORDER_WIDTH}px solid var(--color-gray-700);\n border-radius: 4px;\n margin-right: 8px;\n\n ${RealInput}:hover + ${VisibleContents} & {\n border-color: var(--color-gray-1000);\n }\n\n ${RealInput}:focus-visible + ${VisibleContents} & {\n outline: 2px auto var(--color-primary);\n outline-offset: 2px;\n }\n`;\n\nconst Filled = styled(animated.div)`\n position: absolute;\n z-index: 1;\n top: 2px;\n left: 2px;\n right: 2px;\n bottom: 2px;\n background: var(--color-primary);\n border-radius: 2px;\n`;\n\nconst Label = styled.label`\n font-size: 1rem;\n font-family: var(--font-family);\n color: var(--color-gray-700);\n`;\n\nexport default Checkbox;\n","export { default } from './Checkbox';\n","import React from 'react';\nimport { styled } from '@linaria/react';\n\ninterface Props extends React.HTMLAttributes {\n duration?: number;\n delay?: number;\n children: React.ReactNode;\n}\n\nconst FadeIn = ({\n duration = 333,\n delay = 0,\n children,\n ...delegated\n}: Props) => {\n return (\n \n {children}\n \n );\n};\n\nconst Wrapper = styled.div`\n @media (prefers-reduced-motion: no-preference) {\n animation-name: fadeIn;\n animation-fill-mode: backwards;\n }\n`;\n\nexport default FadeIn;\n","export { default } from './FadeIn';\n","'use client';\n\nimport React from 'react';\nimport { styled } from '@linaria/react';\n\nimport { UserPreferencesContext } from '@/components/UserPreferencesProvider';\nimport FadeIn from '@/components/FadeIn';\n\n// I have other moods, but I need to fix the dark mode images before I can use them. See instructions in /images/josh/__README.md\nexport type Mood = 'happy' | 'sad' | 'very-happy' | 'heart-eyes';\n\nexport interface Props extends React.HTMLAttributes {\n colorModeOverride?: 'light' | 'dark';\n mood?: Mood;\n fadeDuration?: number;\n fadeDelay?: number;\n}\n\nfunction JericaMascot({\n colorModeOverride,\n mood = 'happy',\n fadeDuration = 600,\n fadeDelay = 200,\n ...delegated\n}: Props) {\n const isUsingGlobalColorMode = !colorModeOverride;\n\n const { colorMode: globalColorMode } = React.useContext(\n UserPreferencesContext\n );\n\n const colorMode = colorModeOverride || globalColorMode;\n\n return (\n \n \n \n \n \n \n {mood !== 'happy' && (\n \n \n \n \n )}\n \n \n \n \n \n \n {mood !== 'happy' && (\n \n \n \n \n )}\n \n \n );\n}\n\nconst Wrapper = styled(FadeIn)`\n position: relative;\n`;\n\nconst DarkLayer = styled.div`\n position: relative;\n`;\n\nconst LightLayer = styled.div`\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n opacity: var(--opacity);\n transition: opacity calc(var(--color-swap-duration) + 500ms)\n var(--color-swap-timing-function);\n\n /*\n Ok there's some tricky business here.\n When this component first renders on the server, we don't know what the user’s chosen color mode is. If we specify an override, we don't care, but otherwise, we'll read the global color value from the HTML tag. That way, the correct mascot is shown from the very first paint.\n */\n html[data-color-mode='light'] &[data-use-global-color-mode='true'] {\n opacity: 1;\n }\n html[data-color-mode='dark'] &[data-use-global-color-mode='true'] {\n opacity: 0;\n }\n`;\n\nconst MascotBase = styled.img`\n display: block;\n top: 0;\n left: 0;\n width: 137.5px;\n height: 232px;\n user-select: none;\n pointer-events: none;\n`;\n\nconst Head = styled.img`\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n /* Dragging the face off is SUPER creepy */\n user-select: none;\n pointer-events: none;\n`;\n\nexport default JericaMascot;\n","/*\n This component works by changing the background color of the element, so that when the user tries to scroll beyond the page bounds, the correct color is shown.\n\n It only sets a single color for both top and bottom, because the alternative is a flickery mess.\n\n This *could* be a custom hook, but then the parent component would need to become a Client Component, and I generally want to manage overscroll colors at the page level. So I'm keeping it as a component for now.\n*/\n'use client';\n\nimport * as React from 'react';\n\nimport { useColorMode } from '@/components/UserPreferencesProvider';\n\ninterface Props {\n color?: string;\n lightColor?: string;\n darkColor?: string;\n}\n\nfunction OverscrollColor({ color, lightColor, darkColor }: Props) {\n const colorMode = useColorMode();\n\n React.useEffect(() => {\n let actualColor = color;\n if (colorMode === 'light' && lightColor) {\n actualColor = lightColor;\n } else if (colorMode === 'dark' && darkColor) {\n actualColor = darkColor;\n }\n\n if (!actualColor) {\n return;\n }\n\n document.documentElement.style.setProperty(\n 'background',\n actualColor\n );\n }, [color, lightColor, darkColor, colorMode]);\n\n // When the component unmounts, unset the background color\n React.useEffect(() => {\n return () => {\n document.documentElement.style.removeProperty('background');\n };\n }, []);\n\n return null;\n}\n\nexport default OverscrollColor;\n","'use client';\n\nimport React from 'react';\nimport { styled } from '@linaria/react';\n\nconst SKIP_TARGET_ID = `jwc-skip-here`;\n\nexport function SkipNavTrigger({\n children = `Skip to content`,\n}: {\n children?: React.ReactNode;\n}) {\n const [hasAValidTarget, setHasAValidTarget] = React.useState(false);\n\n React.useEffect(() => {\n const target = document.querySelector(`#${SKIP_TARGET_ID}`);\n\n if (!!target !== hasAValidTarget) {\n setHasAValidTarget(!!target);\n }\n // We only want to do this on-mount, because we have no way of knowing when the SkipNavTarget will show up. We assume it's there on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // If we've rendered the trigger, but there is no target available, we don't want to show the trigger. Doing so would just be frustrating, since it wouldn't skip anything.\n if (!hasAValidTarget) {\n return null;\n }\n\n return {children};\n}\n\nexport function SkipNavTarget({\n scrollMarginTop = 64,\n}: {\n scrollMarginTop?: number;\n}) {\n return ;\n}\n\nconst Trigger = styled.a`\n position: fixed;\n z-index: 99999;\n top: 32px;\n left: 32px;\n padding: 16px 24px;\n border-radius: 12px;\n background: var(--color-background);\n color: var(--color-text);\n box-shadow:\n 0 -5.9px 2.7px rgba(0, 0, 0, 0.018),\n 0 -1.2px 6.9px rgba(0, 0, 0, 0.024),\n 0 8px 14.2px rgba(0, 0, 0, 0.03),\n 0 21.9px 29.2px rgba(0, 0, 0, 0.039),\n 0 49px 80px rgba(0, 0, 0, 0.07);\n\n /* Visually hidden stuff */\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n position: absolute !important;\n width: 1px;\n\n &:focus {\n width: auto;\n height: auto;\n clip: auto;\n }\n`;\n\nconst Target = styled.div`\n contain: none;\n`;\n","'use client';\n\nimport dynamic from 'next/dynamic';\n\nconst ConfettiGeyser = dynamic(\n () =>\n import('./ConfettiGeyser').catch((err) => {\n // If the internet connection is lost, we won’t be able to load the ConfettiGeyser component, but that’s fine.\n return { default: () => null };\n }),\n {\n ssr: false,\n }\n);\n\nexport default ConfettiGeyser;\n","import * as React from 'react';\n\nimport useInterval from '@/hooks/use-interval';\nimport useWindowDimensions from '@/hooks/use-window-dimensions';\nimport type { ConfettiStatus } from '@/helpers/newsletter.helpers';\n\nimport ConfettiGeyser from '@/components/ConfettiGeyser';\nimport InPortal from '@/components/InPortal';\n\ntype Mode = 'burst' | 'stream' | 'preload';\n\ninterface Props {\n status: ConfettiStatus;\n mode: Mode;\n}\n\n// Subscribe Geysers have two modes:\n// - Burst: A big burst of confetti that slowly tapers to 0\n// - Stream: A constant stream of moderate confetti\nfunction SubscribeGeyser({ status, mode = 'burst' }: Props) {\n const windowDimensions = useWindowDimensions();\n\n const [burstConcentration, setBurstConcentration] =\n React.useState(100);\n\n // In portrait orientations (mostly mobile), we want to fire straight up from the bottom of the screen.\n const isPortrait =\n typeof windowDimensions.width === 'number' &&\n typeof windowDimensions.height === 'number' &&\n windowDimensions.width < windowDimensions.height;\n\n const geyserPosition: [number, number] = React.useMemo(() => {\n if (\n typeof windowDimensions.width !== 'number' ||\n typeof windowDimensions.height !== 'number'\n ) {\n // Should never actually be used:\n return [0, 1000];\n }\n\n if (isPortrait) {\n return [windowDimensions.width / 2, windowDimensions.height];\n } else {\n return [0, Math.min(700, windowDimensions.height)];\n }\n }, [isPortrait, windowDimensions.width, windowDimensions.height]);\n\n const intervalDuration =\n burstConcentration > 0 && status === 'active' && mode === 'burst'\n ? 250\n : null;\n\n useInterval(() => {\n let newConcentration = burstConcentration * 0.7 - 1;\n\n if (newConcentration < 1) {\n newConcentration = 0;\n }\n\n setBurstConcentration(newConcentration);\n }, intervalDuration);\n\n let concentration;\n if (status === 'inert') {\n // The `ConfettiGeyser` component is lazy-loaded, meaning that it’s only downloaded when it’s rendered. When `status` is \"inert\", we won’t render it.\n return null;\n } else if (status === 'preload') {\n // When the user submits the form, the status switches to \"preload\", and we’ll render the ConfettiGeyser, but with 0 concentration (so no visible confetti yet).\n concentration = 0;\n } else {\n // We know at this point that the confetti is running, so we’ll set the confetti based on the mode. In burst, it starts high and falls to 0. In stream, it stays constant.\n concentration = mode === 'burst' ? burstConcentration : 16;\n }\n\n return (\n \n \n \n );\n}\n\nexport default SubscribeGeyser;\n","export { default } from './SubscribeGeyser';\n","export type Browser =\n | 'firefox'\n | 'chrome'\n | 'safari'\n | 'ie'\n | 'edge'\n | 'brave';\n\nexport const detectBrowser = (): Browser | null => {\n // SSR!\n if (typeof navigator === 'undefined') {\n return null;\n }\n\n if (\n // @ts-ignore\n typeof InstallTrigger !== 'undefined' ||\n navigator.userAgent.indexOf('Firefox') !== -1\n ) {\n return 'firefox';\n }\n\n // @ts-ignore\n if (!!window.navigator.brave) {\n return 'brave';\n }\n\n const isChrome = navigator.userAgent.indexOf('Chrome') !== -1;\n\n if (isChrome) {\n return 'chrome';\n }\n\n // Safari 3.0+ \"[object HTMLElementConstructor]\"\n const isSafari =\n navigator.userAgent.indexOf('Safari') !== -1 ||\n // @ts-ignore\n /constructor/i.test(window.HTMLElement) ||\n (function (p) {\n return p.toString() === '[object SafariRemoteNotification]';\n })(\n // @ts-ignore\n !window['safari'] ||\n // @ts-ignore\n (typeof safari !== 'undefined' &&\n // @ts-ignore\n window['safari'].pushNotification)\n );\n const isMobileSafari =\n navigator.userAgent.match(/iPad/i) ||\n navigator.userAgent.match(/iPhone/i);\n if (isSafari || isMobileSafari) {\n return 'safari';\n }\n\n // Internet Explorer 6-11\n // @ts-ignore\n const isIE = /*@cc_on!@*/ false || !!document.documentMode;\n if (isIE) {\n return 'ie';\n }\n // Edge 20+\n // @ts-ignore\n const isEdge = !isIE && !!window.StyleMedia;\n if (isEdge) {\n return 'edge';\n }\n\n return null;\n};\n","import React from 'react';\n\nimport { Browser, detectBrowser } from '@/helpers/browser.helpers';\n\nexport default function useBrowser() {\n const [browser, setBrowser] = React.useState(null);\n\n React.useEffect(() => {\n setBrowser(detectBrowser());\n }, []);\n\n return browser;\n}\n","import * as React from 'react';\n\ninterface Options {\n enabled?: boolean;\n delay?: number;\n preventScroll?: boolean;\n}\n\nfunction useFocusOnMount(\n inputRef: React.RefObject,\n { enabled = true, delay, preventScroll = true }: Options = {}\n) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (typeof delay === 'number' && delay > 0) {\n const timeoutId = window.setTimeout(() => {\n inputRef.current?.focus({\n preventScroll,\n });\n }, delay);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }\n\n inputRef.current?.focus({\n preventScroll,\n });\n }, [inputRef, enabled, delay, preventScroll]);\n}\n\nexport default useFocusOnMount;\n","import React from 'react';\n\nfunction useIncrementingNumber(delay: number) {\n const [count, setCount] = React.useState(0);\n\n const savedCallback = React.useRef(() => setCount((c) => c + 1));\n\n // Set up the interval.\n React.useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n let id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n\n return count;\n}\n\nexport default useIncrementingNumber;\n","import React from 'react';\n\nconst useInterval = (callback: Function, delay: number | null) => {\n const intervalId = React.useRef(null);\n const savedCallback = React.useRef(callback);\n\n React.useEffect(() => {\n savedCallback.current = callback;\n });\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n\n if (typeof delay === 'number') {\n intervalId.current = window.setInterval(tick, delay);\n\n return () => {\n if (intervalId.current) {\n window.clearInterval(intervalId.current);\n }\n };\n }\n }, [delay]);\n\n return intervalId.current;\n};\n\nexport default useInterval;\n","import React from 'react';\n\ntype ToggleFn = (newVal?: any) => void;\n\nexport default function useToggle(\n initialValue: boolean = false\n): [boolean, ToggleFn] {\n const [value, setValue] = React.useState(initialValue);\n\n const toggle = React.useCallback((newVal: any) => {\n setValue((v) => {\n // The main use case for this function is to be called without any arguments, which flips the `value` between true/false.\n // However, the user can supply a new boolean value if they want to explicitly turn it on or off.\n // The trick here is that we want to ignore any non-boolean values. This becomes relevant when the `toggle` function is passed as a callback function to an event handler; we want to ignore the MouseEvent or whatever that is automatically passed in.\n if (typeof newVal === 'boolean') {\n return newVal;\n }\n\n return !v;\n });\n }, []);\n\n return [value, toggle];\n}\n","/*\n This hook provides responsive window dimensions.\n\n SPECIAL THING: by default, window.innerWidth is always in pixels, and doesn't change as the user scales up their default font size. This isn't useful; if the user cranks their default font size to 32px, the window essentially shrinks by half, but `window.innerWidth` doesn't change.\n This hook solves for this. The values it returns are in pixels, but scaled based on the user’s default font size.\n*/\nimport React from 'react';\n\nimport { throttle } from '@/utils';\n\ninterface WindowDimensions {\n width: number | undefined;\n height: number | undefined;\n clientWidth: number | undefined;\n}\n\nconst useWindowDimensionsInRems = () => {\n const [windowDimensions, setWindowDimensions] =\n React.useState({\n width: undefined,\n height: undefined,\n clientWidth: undefined,\n });\n\n React.useEffect(() => {\n const calculatorElement = document.createElement('div');\n calculatorElement.style.fontSize = '1rem';\n\n document.body.appendChild(calculatorElement);\n\n const fontSize = parseFloat(\n window.getComputedStyle(calculatorElement).fontSize\n );\n\n const ratio = 16 / fontSize;\n\n setWindowDimensions({\n width: window.innerWidth * ratio,\n height: window.innerHeight * ratio,\n clientWidth: document.documentElement.clientWidth * ratio,\n });\n\n const handleResize = throttle(() => {\n setWindowDimensions({\n width: window.innerWidth * ratio,\n height: window.innerHeight * ratio,\n clientWidth: document.documentElement.clientWidth * ratio,\n });\n }, 250);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n // Hm so weirdly, sometimes the `calculatorElement` is already removed from the DOM by the time this cleanup function runs. So we wrap this in a try/catch to prevent errors.\n try {\n document.body.removeChild(calculatorElement);\n window.removeEventListener('resize', handleResize);\n } catch (err) {}\n };\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensionsInRems;\n","export * from '../shared/lib/app-dynamic';\nexport { default } from '../shared/lib/app-dynamic';\n\n//# sourceMappingURL=app-dynamic.js.map","import type React from 'react'\nimport type { JSX } from 'react'\nimport Loadable from './lazy-dynamic/loadable'\n\nimport type {\n LoadableGeneratedOptions,\n DynamicOptionsLoadingProps,\n Loader,\n LoaderComponent,\n} from './lazy-dynamic/types'\n\nexport {\n type LoadableGeneratedOptions,\n type DynamicOptionsLoadingProps,\n type Loader,\n type LoaderComponent,\n}\n\nexport type DynamicOptions

= LoadableGeneratedOptions & {\n loading?: () => JSX.Element | null\n loader?: Loader

\n loadableGenerated?: LoadableGeneratedOptions\n modules?: string[]\n ssr?: boolean\n}\n\nexport type LoadableOptions

= DynamicOptions

\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n const loadableOptions: LoadableOptions

= {}\n\n if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n }\n\n const mergedOptions = {\n ...loadableOptions,\n ...options,\n }\n\n return Loadable({\n ...mergedOptions,\n modules: mergedOptions.loadableGenerated?.modules,\n })\n}\n","'use client'\n\nimport type { ReactElement } from 'react'\nimport { BailoutToCSRError } from './bailout-to-csr'\n\ninterface BailoutToCSRProps {\n reason: string\n children: ReactElement\n}\n\n/**\n * If rendered on the server, this component throws an error\n * to signal Next.js that it should bail out to client-side rendering instead.\n */\nexport function BailoutToCSR({ reason, children }: BailoutToCSRProps) {\n if (typeof window === 'undefined') {\n throw new BailoutToCSRError(reason)\n }\n\n return children\n}\n","import { Suspense, Fragment, lazy } from 'react'\nimport { BailoutToCSR } from './dynamic-bailout-to-csr'\nimport type { ComponentModule } from './types'\nimport { PreloadChunks } from './preload-chunks'\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule

(\n mod: React.ComponentType

| ComponentModule

| undefined\n): {\n default: React.ComponentType

\n} {\n // Check \"default\" prop before accessing it, as it could be client reference proxy that could break it reference.\n // Cases:\n // mod: { default: Component }\n // mod: Component\n // mod: { default: proxy(Component) }\n // mod: proxy(Component)\n const hasDefault = mod && 'default' in mod\n return {\n default: hasDefault\n ? (mod as ComponentModule

).default\n : (mod as React.ComponentType

),\n }\n}\n\nconst defaultOptions = {\n loader: () => Promise.resolve(convertModule(() => null)),\n loading: null,\n ssr: true,\n}\n\ninterface LoadableOptions {\n loader?: () => Promise | ComponentModule>\n loading?: React.ComponentType | null\n ssr?: boolean\n modules?: string[]\n}\n\nfunction Loadable(options: LoadableOptions) {\n const opts = { ...defaultOptions, ...options }\n const Lazy = lazy(() => opts.loader().then(convertModule))\n const Loading = opts.loading\n\n function LoadableComponent(props: any) {\n const fallbackElement = Loading ? (\n \n ) : null\n\n // If it's non-SSR or provided a loading component, wrap it in a suspense boundary\n const hasSuspenseBoundary = !opts.ssr || !!opts.loading\n const Wrap = hasSuspenseBoundary ? Suspense : Fragment\n const wrapProps = hasSuspenseBoundary ? { fallback: fallbackElement } : {}\n const children = opts.ssr ? (\n <>\n {/* During SSR, we need to preload the CSS from the dynamic component to avoid flash of unstyled content */}\n {typeof window === 'undefined' ? (\n \n ) : null}\n \n \n ) : (\n \n \n \n )\n\n return {children}\n }\n\n LoadableComponent.displayName = 'LoadableComponent'\n\n return LoadableComponent\n}\n\nexport default Loadable\n","'use client'\n\nimport { preload } from 'react-dom'\n\nimport { workAsyncStorage } from '../../../server/app-render/work-async-storage.external'\nimport { encodeURIPath } from '../encode-uri-path'\n\nexport function PreloadChunks({\n moduleIds,\n}: {\n moduleIds: string[] | undefined\n}) {\n // Early return in client compilation and only load requestStore on server side\n if (typeof window !== 'undefined') {\n return null\n }\n\n const workStore = workAsyncStorage.getStore()\n if (workStore === undefined) {\n return null\n }\n\n const allFiles = []\n\n // Search the current dynamic call unique key id in react loadable manifest,\n // and find the corresponding CSS files to preload\n if (workStore.reactLoadableManifest && moduleIds) {\n const manifest = workStore.reactLoadableManifest\n for (const key of moduleIds) {\n if (!manifest[key]) continue\n const chunks = manifest[key].files\n allFiles.push(...chunks)\n }\n }\n\n if (allFiles.length === 0) {\n return null\n }\n\n return (\n <>\n {allFiles.map((chunk) => {\n const href = `${workStore.assetPrefix}/_next/${encodeURIPath(chunk)}`\n const isCss = chunk.endsWith('.css')\n // If it's stylesheet we use `precedence` o help hoist with React Float.\n // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree.\n // The `preload` for stylesheet is not optional.\n if (isCss) {\n return (\n \n )\n } else {\n // If it's script we use ReactDOM.preload to preload the resources\n preload(href, {\n as: 'script',\n fetchPriority: 'low',\n })\n return null\n }\n })}\n \n )\n}\n","import React__default, { useEffect } from 'react';\n\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\n\nfunction useOnMount(callback) {\n useEffect(callback, []);\n}\n\nvar _excluded = [\"id\", \"volume\", \"playbackRate\", \"soundEnabled\", \"interrupt\", \"onload\"];\nfunction useSound(src, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$volume = _ref.volume,\n volume = _ref$volume === void 0 ? 1 : _ref$volume,\n _ref$playbackRate = _ref.playbackRate,\n playbackRate = _ref$playbackRate === void 0 ? 1 : _ref$playbackRate,\n _ref$soundEnabled = _ref.soundEnabled,\n soundEnabled = _ref$soundEnabled === void 0 ? true : _ref$soundEnabled,\n _ref$interrupt = _ref.interrupt,\n interrupt = _ref$interrupt === void 0 ? false : _ref$interrupt,\n onload = _ref.onload,\n delegated = _objectWithoutPropertiesLoose(_ref, _excluded);\n var HowlConstructor = React__default.useRef(null);\n var isMounted = React__default.useRef(false);\n var _React$useState = React__default.useState(null),\n duration = _React$useState[0],\n setDuration = _React$useState[1];\n var _React$useState2 = React__default.useState(null),\n sound = _React$useState2[0],\n setSound = _React$useState2[1];\n var handleLoad = function handleLoad() {\n if (typeof onload === 'function') {\n // @ts-ignore\n onload.call(this);\n }\n if (isMounted.current) {\n // @ts-ignore\n setDuration(this.duration() * 1000);\n }\n // @ts-ignore\n setSound(this);\n };\n // We want to lazy-load Howler, since sounds can't play on load anyway.\n useOnMount(function () {\n import('howler').then(function (mod) {\n if (!isMounted.current) {\n var _mod$Howl;\n // Depending on the module system used, `mod` might hold\n // the export directly, or it might be under `default`.\n HowlConstructor.current = (_mod$Howl = mod.Howl) !== null && _mod$Howl !== void 0 ? _mod$Howl : mod[\"default\"].Howl;\n isMounted.current = true;\n new HowlConstructor.current(_extends({\n src: Array.isArray(src) ? src : [src],\n volume: volume,\n rate: playbackRate,\n onload: handleLoad\n }, delegated));\n }\n });\n return function () {\n isMounted.current = false;\n };\n });\n // When the `src` changes, we have to do a whole thing where we recreate\n // the Howl instance. This is because Howler doesn't expose a way to\n // tweak the sound\n React__default.useEffect(function () {\n if (HowlConstructor.current && sound) {\n setSound(new HowlConstructor.current(_extends({\n src: Array.isArray(src) ? src : [src],\n volume: volume,\n onload: handleLoad\n }, delegated)));\n }\n // The linter wants to run this effect whenever ANYTHING changes,\n // but very specifically I only want to recreate the Howl instance\n // when the `src` changes. Other changes should have no effect.\n // Passing array to the useEffect dependencies list will result in\n // ifinite loop so we need to stringify it, for more details check\n // https://github.com/facebook/react/issues/14476#issuecomment-471199055\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(src)]);\n // Whenever volume/playbackRate are changed, change those properties\n // on the sound instance.\n React__default.useEffect(function () {\n if (sound) {\n sound.volume(volume);\n // HACK: When a sprite is defined, `sound.rate()` throws an error, because Howler tries to reset the \"_default\" sprite, which doesn't exist. This is likely a bug within Howler, but I don’t have the bandwidth to investigate, so instead, we’re ignoring playbackRate changes when a sprite is defined.\n if (!delegated.sprite) {\n sound.rate(playbackRate);\n }\n }\n }, [sound, volume, playbackRate]);\n var play = React__default.useCallback(function (options) {\n if (typeof options === 'undefined') {\n options = {};\n }\n if (!sound || !soundEnabled && !options.forceSoundEnabled) {\n return;\n }\n if (interrupt) {\n sound.stop();\n }\n if (options.playbackRate) {\n sound.rate(options.playbackRate);\n }\n sound.play(options.id);\n }, [sound, soundEnabled, interrupt]);\n var stop = React__default.useCallback(function (id) {\n if (!sound) {\n return;\n }\n sound.stop(id);\n }, [sound]);\n var pause = React__default.useCallback(function (id) {\n if (!sound) {\n return;\n }\n sound.pause(id);\n }, [sound]);\n var returnedValue = [play, {\n sound: sound,\n stop: stop,\n pause: pause,\n duration: duration\n }];\n return returnedValue;\n}\n\nexport default useSound;\nexport { useSound };\n//# sourceMappingURL=use-sound.esm.js.map\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"p1yw9lxw\":\"p1yw9lxw\",\"w1r54vxo\":\"w1r54vxo\",\"srfpqnf\":\"srfpqnf\",\"swoopIn-srfpqnfw1r54vxo\":\"swoopIn-srfpqnfw1r54vxo\",\"lbs55t1\":\"lbs55t1\",\"e1vd0qro\":\"e1vd0qro\",\"i7bpep5\":\"i7bpep5\",\"i1whc3uj\":\"i1whc3uj\",\"skhwtlc\":\"skhwtlc\",\"a348xru\":\"a348xru\",\"d1v8d5p3\":\"d1v8d5p3\",\"ech9dl1\":\"ech9dl1\",\"s1pav75h\":\"s1pav75h\",\"pm1p8iz\":\"pm1p8iz\",\"p1rp73bm\":\"p1rp73bm\",\"c1m3srbb\":\"c1m3srbb\",\"fadeIn\":\"fadeIn\",\"a1g0c6g8\":\"a1g0c6g8\",\"t1ouriiv\":\"t1ouriiv\",\"b1ks6hli\":\"b1ks6hli\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"w1f7ziex\":\"w1f7ziex\",\"l1ljkbi9\":\"l1ljkbi9\",\"rkrfz4\":\"rkrfz4\",\"s1qvr80u\":\"s1qvr80u\",\"s16unp5a\":\"s16unp5a\",\"s502a2p\":\"s502a2p\",\"c1sv4ktv\":\"c1sv4ktv\",\"t1uxg733\":\"t1uxg733\",\"dookcv7\":\"dookcv7\",\"u1x8e2x9\":\"u1x8e2x9\",\"u1abfn63\":\"u1abfn63\",\"ui91fg1\":\"ui91fg1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bhgdr3i\":\"bhgdr3i\",\"b16w56qw\":\"b16w56qw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bqvz84h\":\"bqvz84h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wo9l3q2\":\"wo9l3q2\",\"r1o5tixe\":\"r1o5tixe\",\"v136y9ve\":\"v136y9ve\",\"v8lcvtu\":\"v8lcvtu\",\"f1dif9mh\":\"f1dif9mh\",\"l1v492xg\":\"l1v492xg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"l1uyj04i\":\"l1uyj04i\",\"fadeIn\":\"fadeIn\",\"d1kwgnpz\":\"d1kwgnpz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wv8ehy8\":\"wv8ehy8\",\"fadeIn\":\"fadeIn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wvm4gg4\":\"wvm4gg4\",\"d1qadnsl\":\"d1qadnsl\",\"l1enswin\":\"l1enswin\",\"mr2l5ys\":\"mr2l5ys\",\"hjm134z\":\"hjm134z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"t1v2vbab\":\"t1v2vbab\",\"t1jehbg7\":\"t1jehbg7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"w10oesj0\":\"w10oesj0\"};"],"names":["PrefixParagraph","styled","name","class","propsAsIs","Wrapper","SuccessWrapper","_exp2","Label","EmailInput","InputOuterWrapper","InputWrapper","ColorModeContainer","SubmitButton","ButtonRainbow","AfterForm","Disclaimer","ErrorMessage","SubscribeError","SuccessMessage","Paragraph","PseudoHeading","_exp9","ConstantConfettiCheckboxWrapper","AirMailBorder","TopBorder","_exp10","BottomBorder","_exp11","DedicatedSubscribeForm","constantConfetti","toggleConstantConfetti","useToggle","confettiStatus","handleLoadConfetti","handleTriggerConfetti","useConfetti","inputRef","React","HTMLInputElement","useFocusOnMount","status","emailFields","error","numOfEncounteredErrors","emailId","honeypotElem","handleSubmit","useNewsletterSignup","callbacks","onStart","onSuccess","NEWSLETTER_URL","Button","ButtonContent","ButtonPoofy","children","delegated","rainbowColors","paletteSize","length","hasBrowserSupport","window","CSS","registerProperty","getColorPropName","id","index","useRainbow","intervalDelay","replace","prefersReducedMotion","matchMedia","isEnabled","matches","range","WINDOW_SIZE","map","initialValue","syntax","inherits","err","intervalCount","useIncrementingNumber","reduce","acc","effectiveIntervalCount","value","className","style","transitionDelay","colors","browser","useBrowser","colorKeys","Object","keys","transition","RealInput","VisibleContents","VisibleBox","animated","div","Filled","_exp7","Checkbox","size","checked","label","onChange","active","setActive","generatedId","actualId","springConfig","tension","friction","clamp","shrinkRatio","useSpring","filledScale","outlineSpring","transform","config","playActive","useSound","volume","playOn","playOff","width","height","FadeIn","duration","delay","animationDelay","_exp","DarkLayer","LightLayer","MascotBase","Head","JericaMascot","colorModeOverride","mood","fadeDuration","fadeDelay","colorMode","globalColorMode","UserPreferencesContext","isUsingGlobalColorMode","color","lightColor","OverscrollColor","darkColor","useColorMode","actualColor","document","documentElement","setProperty","removeProperty","SKIP_TARGET_ID","SkipNavTrigger","hasAValidTarget","setHasAValidTarget","target","querySelector","SkipNavTarget","scrollMarginTop","Trigger","Target","ConfettiGeyser","dynamic","catch","default","ssr","concentration","mode","windowDimensions","useWindowDimensions","burstConcentration","setBurstConcentration","isPortrait","geyserPosition","Math","min","useInterval","newConcentration","intervalDuration","InPortal","position","enableCollisions","airFriction","velocity","angularVelocity","angle","spread","volatility","detectBrowser","navigator","InstallTrigger","userAgent","indexOf","brave","isSafari","test","HTMLElement","p","safari","pushNotification","toString","isMobileSafari","match","isIE","documentMode","StyleMedia","setBrowser","enabled","preventScroll","timeoutId","setTimeout","current","focus","clearTimeout","count","setCount","savedCallback","c","setInterval","tick","clearInterval","callback","intervalId","setValue","newVal","v","setWindowDimensions","useWindowDimensionsInRems","undefined","clientWidth","calculatorElement","createElement","fontSize","body","appendChild","ratio","parseFloat","getComputedStyle","innerWidth","innerHeight","handleResize","throttle","addEventListener","removeChild","removeEventListener","dynamicOptions","options","mergedOptions","loadableOptions","loader","Loadable","modules","loadableGenerated","BailoutToCSR","reason","BailoutToCSRError","convertModule","mod","defaultOptions","Promise","resolve","loading","opts","Lazy","lazy","then","Loading","LoadableComponent","props","fallbackElement","isLoading","pastDelay","hasSuspenseBoundary","Wrap","Suspense","Fragment","PreloadChunks","moduleIds","fallback","wrapProps","displayName","workStore","workAsyncStorage","getStore","allFiles","reactLoadableManifest","manifest","key","chunks","files","push","chunk","href","assetPrefix","encodeURIPath","endsWith","isCss","link","precedence","rel","as","preload","fetchPriority"],"sourceRoot":"","ignoreList":[27,32]}