diff --git a/assets/images/hero-small.webp b/assets/images/hero-small.webp new file mode 100644 index 00000000..d1868eb6 Binary files /dev/null and b/assets/images/hero-small.webp differ diff --git a/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.avif b/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.avif new file mode 100644 index 00000000..c0f2cb97 Binary files /dev/null and b/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.avif differ diff --git a/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9ea.webp b/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9ea.webp new file mode 100644 index 00000000..65f9e183 Binary files /dev/null and b/assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9ea.webp differ diff --git a/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.jpg b/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.jpg new file mode 100644 index 00000000..115ddfc1 Binary files /dev/null and b/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.jpg differ diff --git a/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.webp b/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.webp new file mode 100644 index 00000000..bba366af Binary files /dev/null and b/assets/images/works/lumina-web/115ed1195280815.660b181d6299c.webp differ diff --git a/assets/images/works/lumina-web/2b9356195280815.660b181d59670.jpg b/assets/images/works/lumina-web/2b9356195280815.660b181d59670.jpg new file mode 100644 index 00000000..fd53793d Binary files /dev/null and b/assets/images/works/lumina-web/2b9356195280815.660b181d59670.jpg differ diff --git a/assets/images/works/lumina-web/53c220195280815.660b181d5c490.gif b/assets/images/works/lumina-web/53c220195280815.660b181d5c490.gif new file mode 100644 index 00000000..3b2328dd Binary files /dev/null and b/assets/images/works/lumina-web/53c220195280815.660b181d5c490.gif differ diff --git a/assets/images/works/lumina-web/71d54e195280815.660b1f4ba7f82.jpg b/assets/images/works/lumina-web/71d54e195280815.660b1f4ba7f82.jpg new file mode 100644 index 00000000..32494978 Binary files /dev/null and b/assets/images/works/lumina-web/71d54e195280815.660b1f4ba7f82.jpg differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-43-33.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-43-33.png new file mode 100644 index 00000000..3bedd546 Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-43-33.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-45-55.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-45-55.png new file mode 100644 index 00000000..3c812c7e Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-45-55.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-47-33.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-47-33.png new file mode 100644 index 00000000..11a6cbd8 Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-47-33.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-48-41.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-48-41.png new file mode 100644 index 00000000..1e6c2f8a Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-48-41.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-09.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-09.png new file mode 100644 index 00000000..16fa433d Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-09.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-33.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-33.png new file mode 100644 index 00000000..1723e81f Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-49-33.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-51-04.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-51-04.png new file mode 100644 index 00000000..ddab7143 Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-51-04.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-52-29.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-52-29.png new file mode 100644 index 00000000..b349cb92 Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-52-29.png differ diff --git a/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-53-32.png b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-53-32.png new file mode 100644 index 00000000..8ab79bbb Binary files /dev/null and b/assets/images/works/lumina-web/Screenshot at 2024-05-17 22-53-32.png differ diff --git a/assets/images/works/lumina-web/af0e3e195280815.660b181d58616.png b/assets/images/works/lumina-web/af0e3e195280815.660b181d58616.png new file mode 100644 index 00000000..9b585080 Binary files /dev/null and b/assets/images/works/lumina-web/af0e3e195280815.660b181d58616.png differ diff --git a/assets/images/works/lumina-web/beaty-l.webp b/assets/images/works/lumina-web/beaty-l.webp new file mode 100644 index 00000000..5313d809 Binary files /dev/null and b/assets/images/works/lumina-web/beaty-l.webp differ diff --git a/assets/images/works/lumina-web/c060b181d5fe51.webp b/assets/images/works/lumina-web/c060b181d5fe51.webp new file mode 100644 index 00000000..fc519205 Binary files /dev/null and b/assets/images/works/lumina-web/c060b181d5fe51.webp differ diff --git a/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.png b/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.png new file mode 100644 index 00000000..0ef3bc02 Binary files /dev/null and b/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.png differ diff --git a/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.webp b/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.webp new file mode 100644 index 00000000..12b0e96c Binary files /dev/null and b/assets/images/works/lumina-web/c08e93195280815.660b181d5fe51.webp differ diff --git a/assets/images/works/lumina-web/d43aa2195280815.660b181d5d433.jpg b/assets/images/works/lumina-web/d43aa2195280815.660b181d5d433.jpg new file mode 100644 index 00000000..8d62f462 Binary files /dev/null and b/assets/images/works/lumina-web/d43aa2195280815.660b181d5d433.jpg differ diff --git a/assets/images/works/lumina-web/dddddddddd.webp b/assets/images/works/lumina-web/dddddddddd.webp new file mode 100644 index 00000000..7aa546e9 Binary files /dev/null and b/assets/images/works/lumina-web/dddddddddd.webp differ diff --git a/assets/images/works/lumina-web/dddddddddd2.webp b/assets/images/works/lumina-web/dddddddddd2.webp new file mode 100644 index 00000000..9f3ee701 Binary files /dev/null and b/assets/images/works/lumina-web/dddddddddd2.webp differ diff --git a/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd.webp b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd.webp new file mode 100644 index 00000000..47697b9c Binary files /dev/null and b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd.webp differ diff --git a/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (1).jpg b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (1).jpg new file mode 100644 index 00000000..ebbde2e2 Binary files /dev/null and b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (1).jpg differ diff --git a/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (2).jpg b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (2).jpg new file mode 100644 index 00000000..1f256ec9 Binary files /dev/null and b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9 (2).jpg differ diff --git a/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.jpg b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.jpg new file mode 100644 index 00000000..df81dc32 Binary files /dev/null and b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.jpg differ diff --git a/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.webp b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.webp new file mode 100644 index 00000000..86f4b7a8 Binary files /dev/null and b/assets/images/works/lumina-web/eccfbe195280815.660b24ea6edd9.webp differ diff --git a/assets/images/works/lumina-web/lumina-footer.webp b/assets/images/works/lumina-web/lumina-footer.webp new file mode 100644 index 00000000..ba9e38a3 Binary files /dev/null and b/assets/images/works/lumina-web/lumina-footer.webp differ diff --git a/assets/images/works/lumina-web/lumina-grow-small.webp b/assets/images/works/lumina-web/lumina-grow-small.webp new file mode 100644 index 00000000..55e31e06 Binary files /dev/null and b/assets/images/works/lumina-web/lumina-grow-small.webp differ diff --git a/assets/images/works/lumina-web/lumina-grow.webp b/assets/images/works/lumina-web/lumina-grow.webp new file mode 100644 index 00000000..0ca066a1 Binary files /dev/null and b/assets/images/works/lumina-web/lumina-grow.webp differ diff --git a/assets/images/works/lumina-web/lumina-grow1.webp b/assets/images/works/lumina-web/lumina-grow1.webp new file mode 100644 index 00000000..e8ea142d Binary files /dev/null and b/assets/images/works/lumina-web/lumina-grow1.webp differ diff --git a/assets/images/works/lumina-web/shopdsign1.webp b/assets/images/works/lumina-web/shopdsign1.webp new file mode 100644 index 00000000..c8efdaa6 Binary files /dev/null and b/assets/images/works/lumina-web/shopdsign1.webp differ diff --git a/assets/images/works/lumina-web/small-mock.webp b/assets/images/works/lumina-web/small-mock.webp new file mode 100644 index 00000000..1a0aec90 Binary files /dev/null and b/assets/images/works/lumina-web/small-mock.webp differ diff --git a/assets/images/works/lumina-web/smallest-mock.webp b/assets/images/works/lumina-web/smallest-mock.webp new file mode 100644 index 00000000..60725b68 Binary files /dev/null and b/assets/images/works/lumina-web/smallest-mock.webp differ diff --git a/assets/images/works/lumina-web/smoothskin.webp b/assets/images/works/lumina-web/smoothskin.webp new file mode 100644 index 00000000..859eeb36 Binary files /dev/null and b/assets/images/works/lumina-web/smoothskin.webp differ diff --git a/assets/images/works/spoiled-child/hair-min_1.avif b/assets/images/works/spoiled-child/hair-min_1.avif new file mode 100644 index 00000000..1b5b4f96 Binary files /dev/null and b/assets/images/works/spoiled-child/hair-min_1.avif differ diff --git a/assets/images/works/spoiled-child/hair-min_1.webp b/assets/images/works/spoiled-child/hair-min_1.webp new file mode 100644 index 00000000..854cc159 Binary files /dev/null and b/assets/images/works/spoiled-child/hair-min_1.webp differ diff --git a/assets/svg/sprite.svg b/assets/svg/sprite.svg index 55baf9be..6797a41a 100644 --- a/assets/svg/sprite.svg +++ b/assets/svg/sprite.svg @@ -87,4 +87,8 @@ h67.7V6.3z" /> - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/css/index.css b/css/index.css index 1a8db2c0..ef90987b 100644 --- a/css/index.css +++ b/css/index.css @@ -1 +1 @@ -*,:after,:before{box-sizing:border-box}:root{margin:0;--fade-black:0,0,0;--fade-main:252,18,52;--color-white:#fff;--color-black:#000;--below-line:#676767;--color-bg:#ece9e1;--stick-black:#000;--stick-white:#fff;--main-color:#fc1234;--color-third:#bed2f5;--color-forth:#2b2d42;--font-1:sohne-light;--font-2:MonumentExtended;--font-3:MonumentExtended-light;--font-4:Blind-Krystal; /*!important for marquee*/--font-5:GT-Alpine;--mid-largefont:1.8rem;--mid-font:6vw;font-size:15px;--hc-sm:clamp(0.7rem,0.35vi + 0.61rem,0.89rem);--hc-base:clamp(0.88rem,0.57vi + 0.73rem,1.19rem);--hc-md:clamp(1.09rem,0.89vi + 0.87rem,1.58rem);--hc-lg:clamp(1.37rem,1.35vi + 1.03rem,2.11rem);--hc-xl:clamp(1.71rem,2.01vi + 1.21rem,2.81rem);--hc-xxl:clamp(2.14rem,2.93vi + 1.4rem,3.75rem);--hc-xxxl:clamp(2.67rem,4.23vi + 1.61rem,5rem);--feature-height:22.5em}*{scrollbar-width:0!important}h1{font-size:2.986rem}h2{font-size:2.488rem}h3{font-size:2.074rem}h4{font-size:1.728rem}h5{font-size:1.44rem}h6{font-size:1.2rem}p{font-size:1rem}small{font-size:.833rem}html::-webkit-scrollbar{background-color:var(--color-bg)!important;width:9px!important}html#indexpage{overflow-x:hidden;overflow-y:scroll!important}#indexpage .all-background{background-color:var(--color-bg);bottom:0;display:grid;left:0;min-height:100svh;min-width:100vw;position:absolute;top:0;z-index:0}::-webkit-scrollbar-thumb{background-color:#5a5a5a!important;border:1px solid #f9f9f9!important;border-radius:99px!important}html.lenis{height:auto;overflow-y:scroll!important}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}.nav_logo_parent{cursor:pointer}ul{list-style:none}body{background-color:var(--color-bg);color:var(--color-black);font-family:var(--font-2),sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:max-content;margin:0;overflow:hidden;text-rendering:optimizeSpeed;transition:all .3s ease}.dark-mode{--color-black:#fff!important;--color-white:#000!important;--color-bg:#000!important}.center{text-align:center}@font-face{font-display:swap;font-family:MonumentExtended-light;src:url(../fonts/monumentextended-ultralight.woff) format("woff")}@font-face{font-display:swap;font-family:GT-Alpine;src:url(../fonts/GT-Alpina-Light-Italic.woff) format("woff")}@font-face{font-display:swap;font-family:sohne-light;src:url(../fonts/sohne-light.woff2) format("woff2")}@font-face{font-display:swap;font-family:Blind-Krystal;src:url(../fonts/Blind-Krystal.woff) format("woff")}a{color:var(--color-bg);text-decoration:none}a,a:hover{outline:none}a:hover{color:var(--color-black)}a.website{color:var(--color-title)}a.website:hover{color:var(--main-color)}a.black{color:var(--color-black)}a.black:hover{color:var(--color-bg)}a:focus{background:#d3d3d3;outline:none}a:focus:not(:focus-visible){background:transparent}a:focus-visible{background:transparent;outline:2px solid #fff}.hero-main{display:grid;grid-template-areas:"... ... ..." "... ... ..." "herologo herologo herologo" "scroll scroll scroll";grid-template-columns:repeat(3,1fr);grid-template-rows:70px repeat(2,1fr) 70px;min-height:80vh}.nav{bottom:auto;left:0;position:absolute;right:0;top:0;z-index:200}.padding_global.nav_padding{padding-bottom:1rem;padding-top:1rem}.padding_global{height:100%;padding-left:2.5%;padding-right:2.5%}@media screen and (max-width:991px){.nav_grid{grid-column-gap:0;grid-row-gap:0}}.nav_grid{grid-column-gap:1rem;grid-row-gap:1rem;align-items:center;display:grid;grid-auto-columns:1fr;grid-auto-flow:row;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;justify-content:space-between}.nav_logo_parent{justify-content:flex-start}.est_nav,.nav_logo_parent{display:flex;overflow:hidden}.est_nav{align-items:flex-start;cursor:pointer;justify-content:center;z-index:201}.est_nav svg{padding-left:8px}.nav_menu_btn{align-items:center;background-color:hsla(0,0%,94%,0);cursor:pointer;display:flex;flex-direction:column;height:auto;justify-content:center;padding:0 10px;width:auto}.mid-moon--dark{fill:var(--color-black)}.mid-moon--light{fill:var(--main-color)}.logo-close{color:var(--color-black)}.menu_button_wrapper{height:1rem;width:2.25rem;grid-column-gap:.3rem;grid-row-gap:.3rem;align-items:center;display:flex;flex-direction:column;grid-area:menuicon;justify-content:center;overflow:hidden;padding-bottom:0;padding-top:0}.menu_button_line{height:2px;width:100%;grid-column-gap:5px;grid-row-gap:5px;align-items:center;display:flex}.menu_dot{border-radius:100000rem;height:.1875rem;width:.1875rem}.menu-dot-line{background-color:var(--color-black)}.menu_line{height:1.23438px;width:100%}.both-icon-menu{display:grid;grid-template-areas:" menuicon menuname";grid-template-columns:repeat(2,1fr);grid-column-gap:3px}.menu-name{font-family:MonumentExtended;grid-area:menuname}.main-hero{grid-area:herologo;overflow:hidden}.hero-largelogo{font-size:9vw;overflow:hidden;position:relative}.hyper{font-weight:800;letter-spacing:2px;padding-right:7px}.critical{font:var(--font-3)}.below-line{background-color:var(--color-black);bottom:0;height:.052vw;left:0;margin:0;opacity:1;position:absolute;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scrolldown-hero{grid-area:scroll;width:100%}.hero-largelogo sup{font-family:auto;position:absolute;right:10px;top:-23px}.hero-image{height:100vh;overflow:hidden}.introduction{background-color:var(--main-color);display:grid;grid-template-areas:"introtitle introexpla" "... introfooter";grid-template-columns:30% 70%;grid-template-rows:1fr 200px;min-height:100vh;position:relative}@media screen and (max-width:767px){.hero-image{height:50vh}.parallax-me-image{left:-50%;position:relative;width:200%}.hero-largelogo{font-size:8vw}.nav_grid{grid-template-columns:1fr 25px 1fr}.introduction{grid-template-areas:"introtitle " "introexpla" "introfooter";grid-template-columns:1fr;grid-template-rows:auto}.intro-description{padding:40px 25px}.intro-footer{grid-template-areas:"intro-studio" " morestudio";grid-template-columns:1fr;padding:25px;position:relative;text-align:left}.morestudio{align-items:start;display:flex;grid-area:morestudio;justify-content:center;padding:2rem 0}.intro-title{grid-area:introtitle;padding:6.2rem 6.2rem 2rem}.ourservices{grid-template-areas:"servicehead" "serviceaccordion"!important;grid-template-columns:1fr!important;grid-template-rows:auto!important;padding:15px!important}:root{-mid-largefont:1.3rem}.services-head :before{top:37px}.services-head{padding:45px}}.intro-title{grid-area:introtitle;padding-left:6.2rem;padding-top:6.2rem}.intro-title:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"いち";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:90px;width:36px}.intro-description{font-size:var(--mid-largefont);grid-area:introexpla;padding-top:10px}.desc-wrapper{display:flex;font-family:var(--font-1);font-size:var(--hc-lg);width:80%}@media screen and (min-width:768px){.parallax-hero{height:130vh}.intro-footer{display:grid;grid-area:introfooter;grid-template-areas:"intro-studio morestudio";grid-template-columns:60% 40%;padding-top:2rem;position:relative;text-align:left}.morestudio{align-items:start;display:flex;grid-area:morestudio;justify-content:flex-end}.intro-description{padding-top:6.2rem}}.intro-studio{font-family:var(--font-1);font-size:1.2rem;grid-area:intro-studio}.morestudio a{border:.0058vw solid var(--color-black);border-radius:40px;display:flex;gap:10px;margin-right:40px;padding:13px}.morestudio svg{height:20px;width:20px}.divider-line{background-color:var(--color-black);height:.052vw;left:0;margin:0;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;shape-rendering:geometricprecision}#toTop{border:none;bottom:10px;height:45px;overflow:hidden;position:fixed;right:10px;rotate:-45deg;text-decoration:none;text-indent:100%;width:45px;z-index:20}#toTop svg{left:0;position:absolute;width:88%}.top-arrow-wrapper{fill:var(--color-black)}.top-arrow-path{stroke:var(--color-bg)}.ourservices{background-color:transparent;cursor:crosshair;display:grid;grid-template-areas:"servicehead serviceaccordion" "accordion-right serviceaccordion";grid-template-columns:40% 60%;grid-template-rows:6.2rem 1fr;max-height:max-content;min-height:100svh;padding:70px 2rem;position:relative;z-index:2}:after,:before{--tw-content:""}.ourservices:before{bottom:0;content:var(--tw-content);left:0;position:absolute;right:0;top:0;z-index:-1}.services-head{grid-area:servicehead;padding-left:6.2rem;padding-top:2rem;position:relative}.accordion-right{grid-area:accordion-right;position:inherit}.services-accordion{grid-area:serviceaccordion}.col__content-txt{margin-left:32px;max-width:100%;order:2}summary{align-items:center;cursor:pointer;display:flex;font-weight:800;justify-content:space-between;letter-spacing:1px;padding:1rem 0;text-transform:uppercase}summary::-webkit-details-marker{display:none}.accordion-icon,.accordion-icon:after{background:#000;border-radius:10px;box-sizing:border-box;display:block}.accordion-icon:after{content:"";height:16px;left:7px;position:absolute;top:-7px;width:2px}.accordion-icon{height:2px;margin:10px 4px;transform:scale(var(--ggs,1));width:16px}.wrap-accordion-icon{background:var(--stick-white);border-radius:100%;height:23px;width:23px}details{border-bottom:1px solid;padding:1rem 0;grid-gap:1px;max-width:700px}details[open] .accordion-icon:after{display:none}.col__content-txt span{font-family:var(--font-1);font-size:1.1rem}.services-head :before{align-items:center;border:.0058vw solid;border-radius:100%;content:"さん";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:20px;width:36px}.c-sprite.-elephant.is-lazy-loaded{animation-duration:2.5s;animation-timing-function:steps(74)}.c-sprite.-elephant{max-width:13.4375rem}.c-sprite.-loop{animation:playelephant 0s linear;background-position:0}.c-sprite.is-inview{animation-iteration-count:infinite;animation-play-state:running}.c-sprite{background-repeat:no-repeat;background-size:auto 100%;margin:auto}.c-elephant{cursor:crosshair;overflow:hidden;position:relative}.c-elephant_himself_wrap{bottom:0;left:0;opacity:1;position:absolute;right:0;top:0;z-index:-1}.c-elephant_himself{height:279px;left:0;margin-left:-112.5px px;margin-top:-148.5px;position:absolute;top:0;width:165px}@media (max-width:1409px){.c-elephant_himself{height:169px;margin-left:-112.5px;margin-top:-148.5px;width:6.2rem}}.c-sprite{background-image:url(../assets/images/elephant-loop.webp);height:100%;width:100%}@keyframes playelephant{to{background-position:100%}}.grid__item-label{font-family:var(--font-1);font-size:.9rem}.global-video{display:grid;height:100svh;position:relative}#video-background{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;will-change:transform,border-radius;z-index:-1}.grid__item-video,.parallax-image{will-change:transform}.top-background{display:grid;grid-template-areas:"... " "video-overlay" "video-footer";grid-template-columns:1fr;grid-template-rows:20% 60% 20%;position:relative;grid-row-gap:12px}.video-overlay{align-items:center;color:var(--main-color);font-size:11vw;grid-area:video-overlay;width:100%}.video-footer{font-family:inherit;font-size:1rem;grid-area:video-footer}.bold{font-weight:900}.hero-portfolio{background-color:var(--color-black);color:var(--color-bg);display:grid;grid-template-areas:"portfolio-head portfolio-head" "portfolio-text portfolio-trailer";grid-template-columns:45% 55%;grid-template-rows:auto;min-height:100vh;padding:25px;position:relative}.portfolio-head{border-bottom:.0058vw solid;display:grid;grid-area:portfolio-head;grid-template-columns:1fr 3fr;padding:50px 0}.port-header-label{font-size:inherit;padding-left:6.2rem;padding-top:2rem;position:relative;text-align:left}.port-header-label:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"よん";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:20px;width:36px}.port-header-text{align-items:center;display:flex;font-size:calc(var(--mid-font));text-align:right}.explore-portfolio{display:flex;flex-direction:column;font-size:var(--mid-font);grid-area:portfolio-text;text-align:left;grid-gap:50px;border-right:.0058vw solid;padding:50px 1rem 0}.portfolio-trailer{display:grid;grid-area:portfolio-trailer;grid-template-columns:1fr;grid-template-rows:10% 60% 30%;position:relative;grid-row-gap:0}.total-trailers{border-bottom:.0058vw solid var(--color-bg);display:flex;flex-direction:column;grid-row-gap:10px;align-items:center;padding:25px 0;width:90%}.total-trailers-text{font-size:1rem}.trailer-expla-wrapper{position:relative}.trailer-expla{font-family:var(--font-1);font-size:2.074rem;font-weight:900;width:90%}.trailer-expla-footer{font-family:var(--font-1);font-size:1rem;width:90%}.trailerimage{border-radius:25px;grid-row:2/3;height:100%;justify-self:center;overflow:hidden;position:relative;width:80%}.trailerimage img{height:100%;object-fit:cover;object-position:center center;width:100%}.trailer-view-buton{height:200px}@keyframes rotate-inverse{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.global-video .otherchars:nth-last-of-type(2),.otherchars:nth-last-of-type(5){mix-blend-mode:difference;transform:rotateY(180deg)}.trailer_controls{display:block;grid-row:3/4;margin-top:3.75rem}.trailer_button{border:1px solid;border-radius:32px;cursor:pointer;display:inline-block;margin:0 1.25rem;overflow:hidden;padding:1.25rem 1.5625rem;position:relative;transition:opacity .6s cubic-bezier(.215,.61,.355,1),color .6s cubic-bezier(.215,.61,.355,1);z-index:1}.trailer_button svg{display:block;height:12px;width:20px;fill:var(--color-black)}.trailer_button:before{background-color:var(--main-color);border-radius:32px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:scale3d(0,0,1);transition:transform .3s cubic-bezier(.215,.61,.355,1);z-index:-1}.trailer_button:hover.trailer_button:before{transform:scaleX(1)}.trailer_button:hover.trailer_button{border:none}.carousel{display:flex;flex-direction:row;height:100%;list-style:none;margin:0;padding:0;position:relative;width:100%}.carouselimage{flex:0 0 auto;height:100%;left:0;object-fit:cover;object-position:center center;top:0;width:100%}.btn-stack{background:var(--main-color);border-color:var(--color-black);border-radius:9999px;border-width:1px;cursor:pointer;display:block;font-family:var(--font-2);font-size:18px;letter-spacing:-.16px;line-height:26px;margin-right:1.75rem;padding:.75rem 1rem;position:relative;transition-duration:.1s;transition-timing-function:linear}.btn-stack:hover{color:var(--color-bg)}.btn-stack:hover .margin-svgg{fill:var(--color-bg)}.margin-buttons .btn-text{font-family:var(--font-1);font-size:1rem}.btn-stack:after{content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='17' fill='none'%3E%3Cpath fill='%23fff' stroke='var(--color-bg)' d='M8.874.462c.073 1.106.146 2.22.46 3.292.313 1.07.884 2.105 1.803 2.819a6.9 6.9 0 0 0 2.4 1.11 25 25 0 0 0 3.659.7c-2.08.434-1.677.324-2.608.584-1.122.312-2.315.698-3.262 1.384-1.113.804-1.55 1.93-1.96 3.131-.294.868-.37.972-.615 2.672-.087-1.494-.25-2.106-.679-3.097-.349-.802-.707-1.626-1.365-2.251a6.5 6.5 0 0 0-1.671-1.065A15 15 0 0 0 .75 8.321c1.266-.14 2.541-.293 3.741-.681s2.341-1.041 3.065-2.004C8.624 4.228 8.669 2.392 8.874.462Z'/%3E%3C/svg%3E");position:absolute;right:0;top:0;transform:translate(20%,-35%) rotate(-180deg) skew(0) skewY(0) scaleX(0) scaleY(0);transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-stack:hover{background-color:var(--color-black);box-shadow:-4px 3px 0 0 var(--color-bg)}.btn-stack:hover:after{transform:translate(-14%,-22%) rotate(0deg) skew(0) skewY(0) scaleX(1) scaleY(1)}.flex-withgap{display:flex;grid-column-gap:10px;align-items:center}.btn-stack svg{height:1.6rem;justify-self:center;width:1.6rem}.margin-buttons{margin:0 0 0 40px}.getintouch{display:grid;min-height:120svh;position:relative}.glass-bg{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:hsla(0,0%,95%,.01);bottom:0;height:100%;left:0;position:absolute;right:0;top:0;z-index:2}@keyframes marquee-horizontal-alt{0%{transform:translateX(-50%)}to{transform:translateX(0)}}.track-horizontal-alt{animation:marquee-horizontal-alt 25s linear infinite;height:100%;position:absolute;white-space:nowrap;width:500vw;will-change:transform}.marquee-horizontal{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.marquee-text{align-items:center;color:var(--black);display:flex;font-family:var(--font-4),var(--font-2);font-size:200em;height:100%;line-height:.6;margin-bottom:0;opacity:.29;text-transform:uppercase;width:auto}.div-block-4{display:flex;height:100%;overflow:hidden;padding-bottom:452px;padding-top:0}.wrapper.get-in-touch{display:grid;grid-template-areas:"socials-head socials-head" "socials-left socials-right" "socials-footer socials-footer";grid-template-columns:35% 65%;grid-template-rows:auto;margin-bottom:15vh;padding:10px 24px;position:relative;z-index:3}.socials-header{align-items:center;column-gap:2rem;display:grid;grid-area:socials-head;grid-template-columns:30% 70%;padding-bottom:40px;position:relative;width:100%}.heading-2{cursor:pointer;font-size:var(--mid-font)}.socials-left{grid-area:socials-left}.socials-right{grid-area:socials-right}.socials-footer{grid-area:socials-footer}.socials-brand{padding-left:6.2rem;position:relative}.socials-brand:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"ご";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.all-social-wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:auto;height:100%;row-gap:10px;width:100%}.field-box{border-top:.0058vw solid var(--color-black);display:flex;margin-bottom:42px;padding-top:15px}.field-label{color:var(--color-black);font-family:var(--font-3);font-size:.68em;font-weight:600;text-transform:uppercase}label{display:block;font-weight:700;margin-bottom:5px}.text-field{background-color:hsla(0,0%,100%,0);border-bottom:1px solid rgba(var(--fade-black),.2)!important;border:none;color:var(--color-black);font-size:1.45em;font-weight:600;height:38px;letter-spacing:-.045em;line-height:1.42857;margin-bottom:0;margin-left:auto;padding:0 0 12px;transition:all .45s;width:71%}.text-field,.text-field:focus{outline:none}.text-field.text-area{height:172px}.multicheck{column-gap:10px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;margin-left:auto;padding-bottom:0;width:71%}.checkbox-wrapper,.radio-wrapper{align-items:center;background-color:rgba(2,2,2,0);border-color:hsla(0,0%,95%,.35);display:flex;margin-bottom:10px;position:relative}.checkbox-text{color:var(--color-black)}.checkbox-text,.radio-text{align-content:center;display:grid;font-family:var(--font-1);height:38px;margin-right:10px;text-align:center;width:100%;z-index:3}.checkbox-input,.radio-input{background-color:transparent;border:.0058vw solid var(--color-black);bottom:0;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.checkbox-label,r.adio-label{cursor:pointer}input[type=checkbox],input[type=radio]{cursor:pointer;height:100%;height:38px;opacity:0;position:absolute;width:100%;z-index:3}.text-field::placeholder{font-family:var(--font-1);font-size:.8rem;opacity:.6}.clicked-color{background-color:var(--main-color)!important}.clicked-text{color:var(--color-bg)!important}input[type=radio]:checked+.radio-input{background-color:var(--main-color);border-color:var(--main-color)}.clicked{color:var(--color-bg)}#bait,#bot-radio{display:none}.submit-box{align-items:center;border-bottom:.0058vw solid var(--color-black);border-top:.0058vw solid var(--color-black);display:grid;grid-template-columns:80% 20%;height:80px;justify-content:center;position:relative;z-index:2}.submit-box:after{background-color:var(--color-black);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:1.3s;z-index:1}.submit-box:hover:after{transform:scaleX(1)}.submit-box:hover .text-field{color:var(--color-bg);transition-delay:.7s}.submit-box .text-field{border-bottom:none!important;cursor:pointer;height:100%;margin:0;padding-left:2rem;text-align:left;width:100%;z-index:3}.bot-bait{margin:0 -1rem;padding:1rem 0}.align-middle{vertical-align:middle}.arrow-wrapper{z-index:3}.arrow-submit{rotate:180deg}.arrow-submit svg{height:39px;width:62px}.title-upper{color:var(--color-black);font-size:.72em;font-weight:700;letter-spacing:-.045em;text-transform:uppercase}.socials-buttons{display:flex;margin-top:12px}.social-networks{align-items:center;background-color:rgba(1,1,1,0);border:1px solid rgba(1,1,1,.35);border-radius:100%;display:flex;height:52px;justify-content:center;margin-right:4px;width:52px}.social-img{height:24px;width:24px}#overlay{align-items:center;backdrop-filter:blur(4px);background-color:#ffffff5c;display:flex;height:100%;justify-content:center;left:0;top:0;width:100%}#dialog,#overlay{position:fixed;z-index:1002}#dialog{background-color:#fff;border-radius:25px;left:5%;max-width:500px;padding:60px 20px;top:10%;width:80%}.dialog-content{text-align:center}.close-dialog{background:transparent;border:none;cursor:pointer;margin:0;padding:0;position:absolute;right:20px;top:20px}.close-dialog,.icon-close-dialog{height:50px;width:50px}.footer{background-color:var(--color-black);color:#fff;display:grid;grid-template-areas:"... ..." "footer-left footer-right" "footer-footer footer-footer";grid-template-columns:40% 60%;grid-template-rows:20% 1fr 10%;min-height:140vh;position:relative}.footer a:hover{color:var(--main-color)}.footer-right{grid-area:footer-right}.footer-left{counter-reset:footerMapCounter;display:grid;grid-area:footer-left;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.footer-footer{border-top:.0058vw solid var(--main-color);display:flex;grid-area:footer-footer;min-height:6.2rem}.footer-footer-left,.footer-footer-right{align-items:center;display:flex;font-size:.7rem;justify-content:space-between;padding:0 2rem;width:100%}.footer-map-header{color:var(--main-color);counter-increment:footerMapCounter;font-size:1.3rem;padding-inline-start:40px;position:relative;text-transform:uppercase}.footer-map-header:before{align-items:center;border:.0058vw solid var(--main-color);border-radius:100%;content:counter(footerMapCounter);display:flex;font-family:var(--font-2);font-size:.7rem;height:20px;justify-content:center;left:10px;position:absolute;top:0;width:20px}.large-c{font-family:var(--font-1);font-size:31vw;position:relative}.large-c sup{font-size:8vw;position:absolute;right:10px}.large-h{font-family:var(--font-3);font-size:33vw}.footer li{font-family:var(--font-1)}@media (max-width:835px){.large-c,.large-h{font-size:50vw}.large-h{font-family:var(--font-3)}.total-trailers{border-bottom:.0058vw solid var(--color-bg);border-top:.0058vw solid var(--color-bg)}.footer{background-color:var(--color-black);color:#fff;display:grid;grid-template-areas:"... " "footer-left " "footer-right" " footer-footer" "...";grid-template-columns:1fr;grid-template-rows:auto;padding-top:6.2rem}.footer-footer{flex-direction:column;justify-content:space-around}.wrapper.get-in-touch{grid-template-areas:"socials-head" "socials-left " "socials-right" "socials-footer ";grid-template-columns:1fr}.socials-left{padding-bottom:50px}.socials-header{padding:40px 10px}.explore-portfolio,.portfolio-footer{border:none}.hero-portfolio{background-color:var(--color-black);color:var(--color-bg);display:grid;grid-template-areas:"portfolio-head " "portfolio-trailer" "portfolio-text " "portfolio-footer ";grid-template-columns:1fr;grid-template-rows:auto;min-height:100vh;padding:1rem!important}.trailer-view-buton{height:unset}.margin-buttons{align-items:center;display:flex;justify-content:center}.trailer-expla{width:100%}.total-trailers{font-size:4rem;text-align:center;width:100%}.introduction{grid-template-areas:"introtitle" " introexpla" " introfooter";grid-template-columns:1fr;grid-template-rows:auto;min-height:100vh;padding:25px;position:relative}.desc-wrapper{width:100%}.portfolio-head{border:none;display:grid;grid-area:portfolio-head;grid-template-columns:1fr;grid-gap:70px}.port-header-text{align-items:center;display:grid;font-size:calc(var(--mid-font));text-align:center}.socials-brand:before{left:-9px}.socials-brand{padding-left:50px}.socials-header{grid-template-columns:1fr}}@media screen and (max-width:425px){.footer-left ul{padding-left:2rem}.field-box{flex-direction:column}.multicheck,.text-field{width:100%}.trailer-expla{font-size:1.9rem!important}.introduction{padding:0}:root{--mid-largefont:1.3rem}.socials-brand{padding:0 0 20px 50px}}.submit-info:before{background-color:var(--color-black);bottom:-2px;content:"";height:2px;left:0;position:absolute;transition:all .5s ease;width:0}.submit-info{position:relative}.submit-info:hover:before{width:100%}.split-chars{overflow:hidden}html{scroll-behavior:auto}.footer{overflow:hidden}@media screen and (max-width:375px){.footer-left{counter-reset:footerMapCounter;display:grid;gap:10px;grid-area:footer-left;grid-template-columns:1fr!important;padding-left:15px}.footer li{font-family:var(--font-1);font-size:1.2em;padding-bottom:10px}.footer-map-header{font-size:1.6rem}.flexme{display:grid;grid-template-columns:1fr 1fr;padding:0 10px;row-gap:9px}}@media screen and (min-width:1660px){:root,html{font-size:1.4vw}.introduction{grid-template-rows:auto!important}}.tidio-5hhiig{display:none!important}@media screen and (min-width:1024px){.parallax-me-image{height:110%}}@media screen and (min-width:768px) and (max-width:1024px){.parallax-me-image{height:85%}}::selection{background:var(--main-color);color:inherit}.thirtyworks{align-items:center;background-color:var(--color-black);color:var(--color-bg);color:var(--main-color);display:flex;height:fit-content;justify-content:center;min-height:20vh;padding:0 0 50px;position:relative}.thirtyworks .below-line,.thirtyworks .top-line{background-color:var(--main-color)}.top-line{background-color:var(--color-black);height:.052vw;left:0;margin:0;opacity:1;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.thirty-wrapper{align-items:center;display:flex;justify-content:center;padding:20px 0;position:relative;width:100%}.thirty-wrapper svg{height:100%;width:calc(40px + 3vw)}.thirty-left svg{grid-area:thirty-left;transform:rotate(180deg)}@media screen and (max-width:479px){.thirty-left,.thirty-right{height:8em;width:8em}}@media screen and (max-width:767px){.thirty-left,.thirty-right{height:6em;width:6em}}.italic{font-style:italic}@media screen and (max-width:991px){.thirty-left,.thirty-right{height:5em;width:5em}}.thirty-left,.thirty-right{height:4em;margin-left:auto;margin-right:auto;width:4em}@media screen and (min-width:1441px){.thirty-center{font-size:var(--hc-xxxl)}}@media screen and (max-width:1440px){.thirty-center{font-size:var(--hc-xxl)}}.thirty-center{color:var(--main-color);font-family:var(--font-3)}.gt-italic{font-family:GT-Alpine,sans-serif}.feature-work{align-items:center;background-color:var(--color-black);color:var(--main-color);display:flex;height:fit-content;justify-content:center;min-height:100vh;padding:6.2rem 1rem 50px}@media screen and (max-width:625px){.feature-wrapper{grid-template-areas:"feature-header" "feature-expla" "feature-image" "feature-expla-2" "feature-image-2"!important;grid-template-columns:1fr!important}:root{--feature-height:80vw}.checkbox-text{font-size:var(--hc-base)}}@media screen and (max-width:767px) and (min-width:626px){:root{--feature-height:18.5em}}.feature-wrapper{display:grid;gap:20px;grid-template-areas:"feature-header feature-header" "feature-expla feature-image" "feature-image-2 feature-expla-2";grid-template-columns:1fr 1fr;width:100%}.feature-image{grid-area:feature-image;height:var(--feature-height);object-fit:cover;position:relative;width:100%}.feature-header{color:var(--main-color);font-family:var(--font-3);font-size:var(--hc-xxl);gap:3rem;grid-area:feature-header}.feature-expla,.feature-header{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.feature-expla{color:var(--color-bg);grid-area:feature-expla;height:var(--feature-height)}.feature-header svg{rotate:-90deg;width:var(--hc-xxl)}.feature-outer-wrapper{border:.0058vw solid hsla(0,0%,95%,.35);display:flex;height:100%;justify-content:center;padding:20px;width:100%}.feature-inner-wrapper{align-content:space-between;border:1px solid hsla(0,0%,95%,.35);display:grid;height:100%;padding:10px;width:100%}.feature-inner-wrapper:hover .feature-view svg{mix-blend-mode:difference;transition-delay:.4s}.fit-image{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.feature-image-2{grid-area:feature-image-2;height:var(--feature-height);object-fit:cover;position:relative;width:100%}.feature-expla-2{align-items:center;display:flex;flex-direction:column;grid-area:feature-expla-2;justify-content:center;text-align:center}.feature-expla-info{color:var(--color-bg);display:grid;flex-direction:column;font-family:var(--font-3);font-size:var(--hc-xxl);grid-template-areas:"feature-info-head feature-case-no" "feature-services feature-services";grid-template-columns:70% 30%;height:max-content;width:100%}.feature-case-no{align-items:center;display:grid;font-family:var(--font-1);font-size:var(--hc-xxxl);grid-area:feature-case-no;justify-content:end;width:100%}.feature-info-head{align-items:center;display:flex;font-family:var(--font-5);font-size:var(--hc-lg);grid-area:feature-info-head;height:100%;justify-content:start;position:relative}.feature-services{display:flex;font-family:sohne-light;font-size:var(--hc-sm);grid-area:feature-services}@media screen and (min-width:768px){.feature-expla,.feature-image{height:70vh}}.feature-info-bottom{display:grid;flex-direction:column;grid-template-columns:70% 30%;height:max-content;width:100%}.feature-year{font-family:var(--font-1);font-size:var(--hc-sm)}.feature-view,.feature-year{align-items:center;display:flex;height:100%}.feature-view{justify-content:end}.feature-view svg{height:var(--hc-xl);rotate:45deg;width:var(--hc-xxl)}.feature_footer{align-items:center;color:var(--main-color);display:flex;justify-content:center;padding:3rem 1.5rem;width:100%}.feature_footer,.feature_footer_inner{background-color:var(--color-black);height:100%}.feature_footer_inner{color:var(--color-bg);font-family:sohne-light;font-size:var(--hc-xxxl);max-width:6em;position:relative} \ No newline at end of file +*,:after,:before{box-sizing:border-box}:root{margin:0;--fade-black:0,0,0;--fade-main:252,18,52;--color-white:#fff;--color-black:#000;--below-line:#676767;--color-bg:#ece9e1;--stick-black:#000;--stick-white:#fff;--main-color:#fc1234;--color-third:#bed2f5;--color-forth:#2b2d42;--font-1:sohne-light;--font-2:MonumentExtended;--font-3:MonumentExtended-light;--font-4:Blind-Krystal; /*!important for marquee*/--font-5:GT-Alpine;--mid-largefont:1.8rem;--mid-font:6vw;font-size:15px;--hc-sm:clamp(0.7rem,0.35vi + 0.61rem,0.89rem);--hc-base:clamp(0.88rem,0.57vi + 0.73rem,1.19rem);--hc-md:clamp(1.09rem,0.89vi + 0.87rem,1.58rem);--hc-lg:clamp(1.37rem,1.35vi + 1.03rem,2.11rem);--hc-xl:clamp(1.71rem,2.01vi + 1.21rem,2.81rem);--hc-xxl:clamp(2.14rem,2.93vi + 1.4rem,3.75rem);--hc-xxxl:clamp(2.67rem,4.23vi + 1.61rem,5rem);--feature-height:22.5em}*{scrollbar-width:0!important}h1{font-size:2.986rem}h2{font-size:2.488rem}h3{font-size:2.074rem}h4{font-size:1.728rem}h5{font-size:1.44rem}h6{font-size:1.2rem}p{font-size:1rem}small{font-size:.833rem}html::-webkit-scrollbar{background-color:var(--color-bg)!important;width:9px!important}html#indexpage{overflow-x:hidden;overflow-y:scroll!important}#indexpage .all-background{background-color:var(--color-bg);bottom:0;display:grid;left:0;min-height:100svh;min-width:100vw;position:absolute;top:0;z-index:0}::-webkit-scrollbar-thumb{background-color:#5a5a5a!important;border:1px solid #f9f9f9!important;border-radius:99px!important}html.lenis{height:auto;overflow-y:scroll!important}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}.nav_logo_parent{cursor:pointer}ul{list-style:none}body{background-color:var(--color-bg);color:var(--color-black);font-family:var(--font-2),sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:max-content;margin:0;overflow:hidden;text-rendering:optimizeSpeed;transition:all .3s ease}.dark-mode{--color-black:#fff!important;--color-white:#000!important;--color-bg:#000!important}.center{text-align:center}@font-face{font-display:swap;font-family:MonumentExtended-light;src:url(../fonts/monumentextended-ultralight.woff) format("woff")}@font-face{font-display:swap;font-family:GT-Alpine;src:url(../fonts/GT-Alpina-Light-Italic.woff) format("woff")}@font-face{font-display:swap;font-family:sohne-light;src:url(../fonts/sohne-light.woff2) format("woff2")}@font-face{font-display:swap;font-family:Blind-Krystal;src:url(../fonts/Blind-Krystal.woff) format("woff")}a{color:var(--color-bg);text-decoration:none}a,a:hover{outline:none}a:hover{color:var(--color-black)}a.website{color:var(--color-title)}a.website:hover{color:var(--main-color)}a.black{color:var(--color-black)}a.black:hover{color:var(--color-bg)}a:focus{background:#d3d3d3;outline:none}a:focus:not(:focus-visible){background:transparent}a:focus-visible{background:transparent;outline:2px solid #fff}.hero-main{display:grid;grid-template-areas:"... ... ..." "... ... ..." "herologo herologo herologo" "scroll scroll scroll";grid-template-columns:repeat(3,1fr);grid-template-rows:70px repeat(2,1fr) 70px;min-height:65vh}.nav{bottom:auto;left:0;position:absolute;right:0;top:0;z-index:200}.padding_global.nav_padding{padding-bottom:1rem;padding-top:1rem}.padding_global{height:100%;padding-left:2.5%;padding-right:2.5%}@media screen and (max-width:991px){.nav_grid{grid-column-gap:0;grid-row-gap:0}}.nav_grid{grid-column-gap:1rem;grid-row-gap:1rem;align-items:center;display:grid;grid-auto-columns:1fr;grid-auto-flow:row;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;justify-content:space-between}.nav_logo_parent{justify-content:flex-start}.est_nav,.nav_logo_parent{display:flex;overflow:hidden}.est_nav{align-items:flex-start;cursor:pointer;justify-content:center;z-index:201}.est_nav svg{padding-left:8px}.nav_menu_btn{align-items:center;background-color:hsla(0,0%,94%,0);cursor:pointer;display:flex;flex-direction:column;height:auto;justify-content:center;padding:0 10px;width:auto}.mid-moon--dark{fill:var(--color-black)}.mid-moon--light{fill:var(--main-color)}.logo-close{color:var(--color-black)}.menu_button_wrapper{height:1rem;width:2.25rem;grid-column-gap:.3rem;grid-row-gap:.3rem;align-items:center;display:flex;flex-direction:column;grid-area:menuicon;justify-content:center;overflow:hidden;padding-bottom:0;padding-top:0}.menu_button_line{height:2px;width:100%;grid-column-gap:5px;grid-row-gap:5px;align-items:center;display:flex}.menu_dot{border-radius:100000rem;height:.1875rem;width:.1875rem}.menu-dot-line{background-color:var(--color-black)}.menu_line{height:1.23438px;width:100%}.both-icon-menu{display:grid;grid-template-areas:" menuicon menuname";grid-template-columns:repeat(2,1fr);grid-column-gap:3px}.menu-name{font-family:MonumentExtended;grid-area:menuname}.main-hero{grid-area:herologo;overflow:hidden}.hero-largelogo{font-size:9vw;overflow:hidden;position:relative}.hyper{font-weight:800;letter-spacing:2px;padding-right:7px}.critical{font:var(--font-3)}.below-line{background-color:var(--color-black);bottom:0;height:.052vw;left:0;margin:0;opacity:1;position:absolute;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scrolldown-hero{grid-area:scroll;width:100%}.hero-largelogo sup{font-family:auto;position:absolute;right:10px;top:-23px}.hero-image{height:100vh;overflow:hidden}.introduction{background-color:var(--main-color);display:grid;grid-template-areas:"introtitle introexpla" "... introfooter";grid-template-columns:30% 70%;grid-template-rows:1fr 200px;min-height:100vh;position:relative}@media screen and (max-width:767px){.hero-image{height:50vh}.video-overlay{margin:auto}.field-label{text-transform:uppercase}.field-label,.footer-footer{font-family:var(--font-1)!important}.checkbox-text,.radio-text{padding:.4em}.footer-left ul{font-size:var(--hc-base)!important}.feature-header svg{width:3rem!important}.feature-view svg{width:2.67rem!important}.feature_footer_inner{max-width:100%!important}.parallax-me-image{left:-50%;position:relative;width:200%}.hero-largelogo{font-size:8vw}.nav_grid{grid-template-columns:1fr 25px 1fr}.introduction{grid-template-areas:"introtitle " "introexpla" "introfooter";grid-template-columns:1fr;grid-template-rows:auto}.intro-description{padding:40px 25px}.intro-footer{grid-template-areas:"intro-studio" " morestudio";grid-template-columns:1fr;padding:25px;position:relative;text-align:left}.morestudio{align-items:start;display:flex;grid-area:morestudio;justify-content:center;padding:2rem 0}.intro-title{grid-area:introtitle;padding:6.2rem 6.2rem 2rem}.ourservices{grid-template-areas:"servicehead" "serviceaccordion"!important;grid-template-columns:1fr!important;grid-template-rows:auto!important;padding:15px!important}:root{-mid-largefont:1.3rem}.services-head :before{top:37px}.services-head{padding:45px}}.intro-title{grid-area:introtitle;padding-left:6.2rem;padding-top:6.2rem}.intro-title:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"いち";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:90px;width:36px}.intro-description{font-size:var(--mid-largefont);grid-area:introexpla;padding-top:10px}.desc-wrapper{display:flex;font-family:var(--font-1);font-size:var(--hc-lg);width:80%}@media screen and (min-width:768px){.parallax-hero{height:130vh}.feature_footer_inner{max-width:6rem}.intro-footer{display:grid;grid-area:introfooter;grid-template-areas:"intro-studio morestudio";grid-template-columns:60% 40%;padding-top:2rem;position:relative;text-align:left}.morestudio{align-items:start;display:flex;grid-area:morestudio;justify-content:flex-end}.intro-description{padding-top:6.2rem}}.intro-studio{font-family:var(--font-1);font-size:1.2rem;grid-area:intro-studio}.morestudio a{border:.0058vw solid var(--color-black);border-radius:40px;display:flex;gap:10px;margin-right:40px;padding:13px}.morestudio svg{height:20px;width:20px}.divider-line{background-color:var(--color-black);height:.052vw;left:0;margin:0;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;shape-rendering:geometricprecision}#toTop{border:none;bottom:10px;height:45px;overflow:hidden;position:fixed;right:10px;rotate:-45deg;text-decoration:none;text-indent:100%;width:45px;z-index:20}#toTop svg{left:0;position:absolute;width:88%}.top-arrow-wrapper{fill:var(--color-black)}.top-arrow-path{stroke:var(--color-bg)}.ourservices{background-color:transparent;cursor:crosshair;display:grid;grid-template-areas:"servicehead serviceaccordion" "accordion-right serviceaccordion";grid-template-columns:40% 60%;grid-template-rows:6.2rem 1fr;max-height:max-content;min-height:100svh;padding:70px 2rem;position:relative;z-index:2}:after,:before{--tw-content:""}.ourservices:before{bottom:0;content:var(--tw-content);left:0;position:absolute;right:0;top:0;z-index:-1}.services-head{grid-area:servicehead;padding-left:6.2rem;padding-top:2rem;position:relative}.accordion-right{grid-area:accordion-right;position:inherit}.services-accordion{grid-area:serviceaccordion}.col__content-txt{margin-left:32px;max-width:100%;order:2}summary{align-items:center;cursor:pointer;display:flex;font-weight:800;justify-content:space-between;letter-spacing:1px;padding:1rem 0;text-transform:uppercase}summary::-webkit-details-marker{display:none}.accordion-icon,.accordion-icon:after{background:#000;border-radius:10px;box-sizing:border-box;display:block}.accordion-icon:after{content:"";height:16px;left:7px;position:absolute;top:-7px;width:2px}.accordion-icon{height:2px;margin:10px 4px;transform:scale(var(--ggs,1));width:16px}.wrap-accordion-icon{background:var(--stick-white);border-radius:100%;height:23px;width:23px}details{border-bottom:1px solid;padding:1rem 0;grid-gap:1px;max-width:700px}details[open] .accordion-icon:after{display:none}.col__content-txt span{font-family:var(--font-1);font-size:1.1rem}.services-head :before{align-items:center;border:.0058vw solid;border-radius:100%;content:"さん";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:20px;width:36px}.c-sprite.-elephant.is-lazy-loaded{animation-duration:2.5s;animation-timing-function:steps(74)}.c-sprite.-elephant{max-width:13.4375rem}.c-sprite.-loop{animation:playelephant 0s linear;background-position:0}.c-sprite.is-inview{animation-iteration-count:infinite;animation-play-state:running}.c-sprite{background-repeat:no-repeat;background-size:auto 100%;margin:auto}.c-elephant{cursor:crosshair;overflow:hidden;position:relative}.c-elephant_himself_wrap{bottom:0;left:0;opacity:1;position:absolute;right:0;top:0;z-index:-1}.c-elephant_himself{height:279px;left:0;margin-left:-112.5px px;margin-top:-148.5px;position:absolute;top:0;width:165px}@media (max-width:1409px){.c-elephant_himself{height:169px;margin-left:-112.5px;margin-top:-148.5px;width:6.2rem}}.c-sprite{background-image:url(../assets/images/elephant-loop.webp);height:100%;width:100%}@keyframes playelephant{to{background-position:100%}}.grid__item-label{font-family:var(--font-1);font-size:.9rem}.global-video{display:grid;height:100vh;position:relative}#video-background{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;will-change:transform,border-radius;z-index:-1}.grid__item-video,.parallax-image{will-change:transform}.top-background{display:grid;grid-template-areas:"... " "video-overlay" "video-footer";grid-template-columns:1fr;grid-template-rows:20% 60% 20%;position:relative;grid-row-gap:12px}.video-overlay{align-items:center;color:var(--main-color);font-size:11vw;grid-area:video-overlay;width:100%}.video-footer{font-family:inherit;font-size:1rem;grid-area:video-footer}.bold{font-weight:900}.hero-portfolio{background-color:var(--color-black);color:var(--color-bg);display:grid;grid-template-areas:"portfolio-head portfolio-head" "portfolio-text portfolio-trailer";grid-template-columns:45% 55%;grid-template-rows:auto;min-height:100vh;padding:25px;position:relative}.portfolio-head{border-bottom:.0058vw solid;display:grid;grid-area:portfolio-head;grid-template-columns:1fr 3fr;padding:50px 0}.port-header-label{font-size:inherit;padding-left:6.2rem;padding-top:2rem;position:relative;text-align:left}.port-header-label:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"よん";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:20px;width:36px}.port-header-text{align-items:center;display:flex;font-size:calc(var(--mid-font));text-align:right}.explore-portfolio{display:flex;flex-direction:column;font-size:var(--mid-font);grid-area:portfolio-text;text-align:left;grid-gap:50px;border-right:.0058vw solid;padding:50px 1rem 0}.portfolio-trailer{display:grid;grid-area:portfolio-trailer;grid-template-columns:1fr;grid-template-rows:10% 60% 30%;position:relative;grid-row-gap:0}.total-trailers{border-bottom:.0058vw solid var(--color-bg);display:flex;flex-direction:column;grid-row-gap:10px;align-items:center;padding:25px 0;width:90%}.total-trailers-text{font-size:1rem}.trailer-expla-wrapper{position:relative}.trailer-expla{font-family:var(--font-1);font-size:2.074rem;font-weight:900;width:90%}.trailer-expla-footer{font-family:var(--font-1);font-size:1rem;width:90%}.trailerimage{border-radius:25px;grid-row:2/3;height:100%;justify-self:center;overflow:hidden;position:relative;width:80%}.trailerimage img{height:100%;object-fit:cover;object-position:center center;width:100%}.trailer-view-buton{height:200px}@keyframes rotate-inverse{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.global-video .otherchars:nth-last-of-type(2),.otherchars:nth-last-of-type(5){mix-blend-mode:difference;transform:rotateY(180deg)}.trailer_controls{display:block;grid-row:3/4;margin-top:3.75rem}.trailer_button{border:1px solid;border-radius:32px;cursor:pointer;display:inline-block;margin:0 1.25rem;overflow:hidden;padding:1.25rem 1.5625rem;position:relative;transition:opacity .6s cubic-bezier(.215,.61,.355,1),color .6s cubic-bezier(.215,.61,.355,1);z-index:1}.trailer_button svg{display:block;height:12px;width:20px;fill:var(--color-black)}.trailer_button:before{background-color:var(--main-color);border-radius:32px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:scale3d(0,0,1);transition:transform .3s cubic-bezier(.215,.61,.355,1);z-index:-1}.trailer_button:hover.trailer_button:before{transform:scaleX(1)}.trailer_button:hover.trailer_button{border:none}.carousel{display:flex;flex-direction:row;height:100%;list-style:none;margin:0;padding:0;position:relative;width:100%}.carouselimage{flex:0 0 auto;height:100%;left:0;object-fit:cover;object-position:center center;top:0;width:100%}.btn-stack{background:var(--main-color);border-color:var(--color-black);border-radius:9999px;border-width:1px;cursor:pointer;display:block;font-family:var(--font-2);font-size:18px;letter-spacing:-.16px;line-height:26px;margin-right:1.75rem;padding:.75rem 1rem;position:relative;transition-duration:.1s;transition-timing-function:linear}.btn-stack:hover{color:var(--color-bg)}.btn-stack:hover .margin-svgg{fill:var(--color-bg)}.margin-buttons .btn-text{font-family:var(--font-1);font-size:1rem}.btn-stack:after{content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='17' fill='none'%3E%3Cpath fill='%23fff' stroke='var(--color-bg)' d='M8.874.462c.073 1.106.146 2.22.46 3.292.313 1.07.884 2.105 1.803 2.819a6.9 6.9 0 0 0 2.4 1.11 25 25 0 0 0 3.659.7c-2.08.434-1.677.324-2.608.584-1.122.312-2.315.698-3.262 1.384-1.113.804-1.55 1.93-1.96 3.131-.294.868-.37.972-.615 2.672-.087-1.494-.25-2.106-.679-3.097-.349-.802-.707-1.626-1.365-2.251a6.5 6.5 0 0 0-1.671-1.065A15 15 0 0 0 .75 8.321c1.266-.14 2.541-.293 3.741-.681s2.341-1.041 3.065-2.004C8.624 4.228 8.669 2.392 8.874.462Z'/%3E%3C/svg%3E");position:absolute;right:0;top:0;transform:translate(20%,-35%) rotate(-180deg) skew(0) skewY(0) scaleX(0) scaleY(0);transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-stack:hover{background-color:var(--color-black);box-shadow:-4px 3px 0 0 var(--color-bg)}.btn-stack:hover:after{transform:translate(-14%,-22%) rotate(0deg) skew(0) skewY(0) scaleX(1) scaleY(1)}.flex-withgap{display:flex;grid-column-gap:10px;align-items:center}.btn-stack svg{height:1.6rem;justify-self:center;width:1.6rem}.margin-buttons{margin:0 0 0 40px}.getintouch{display:grid;min-height:120svh;position:relative}.glass-bg{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:hsla(0,0%,95%,.01);bottom:0;height:100%;left:0;position:absolute;right:0;top:0;z-index:2}@keyframes marquee-horizontal-alt{0%{transform:translateX(-50%)}to{transform:translateX(0)}}.track-horizontal-alt{animation:marquee-horizontal-alt 25s linear infinite;height:100%;position:absolute;white-space:nowrap;width:500vw;will-change:transform}.marquee-horizontal{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.marquee-text{align-items:center;color:var(--black);display:flex;font-family:var(--font-4),var(--font-2);font-size:200em;height:100%;line-height:.6;margin-bottom:0;opacity:.29;text-transform:uppercase;width:auto}.div-block-4{display:flex;height:100%;overflow:hidden;padding-bottom:452px;padding-top:0}.wrapper.get-in-touch{display:grid;grid-template-areas:"socials-head socials-head" "socials-left socials-right" "socials-footer socials-footer";grid-template-columns:35% 65%;grid-template-rows:auto;margin-bottom:15vh;padding:10px 24px;position:relative;z-index:3}.socials-header{align-items:center;column-gap:2rem;display:grid;grid-area:socials-head;grid-template-columns:30% 70%;padding-bottom:40px;position:relative;width:100%}.heading-2{cursor:pointer;font-size:var(--mid-font)}.socials-left{grid-area:socials-left}.socials-right{grid-area:socials-right}.socials-footer{grid-area:socials-footer}.socials-brand{padding-left:6.2rem;position:relative}.socials-brand:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"ご";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.all-social-wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:auto;height:100%;row-gap:10px;width:100%}.field-box{border-top:.0058vw solid var(--color-black);display:flex;margin-bottom:42px;padding-top:15px}.field-label{color:var(--color-black);font-family:var(--font-3);font-size:.68em;font-weight:600;text-transform:uppercase}label{display:block;font-weight:700;margin-bottom:5px}.text-field{background-color:hsla(0,0%,100%,0);border-bottom:1px solid rgba(var(--fade-black),.2)!important;border:none;color:var(--color-black);font-size:1.45em;font-weight:600;height:38px;letter-spacing:-.045em;line-height:1.42857;margin-bottom:0;margin-left:auto;padding:0 0 12px;transition:all .45s;width:71%}.text-field,.text-field:focus{outline:none}.text-field.text-area{height:172px}.multicheck{column-gap:10px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;margin-left:auto;padding-bottom:0;width:71%}.checkbox-wrapper,.radio-wrapper{align-items:center;background-color:rgba(2,2,2,0);border-color:hsla(0,0%,95%,.35);display:flex;margin-bottom:10px;position:relative}.checkbox-text{color:var(--color-black)}.checkbox-text,.radio-text{align-content:center;display:grid;font-family:var(--font-1);height:38px;margin-right:10px;text-align:center;width:100%;z-index:3}.checkbox-input,.radio-input{background-color:transparent;border:.0058vw solid var(--color-black);bottom:0;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.checkbox-label,r.adio-label{cursor:pointer}input[type=checkbox],input[type=radio]{cursor:pointer;height:100%;height:38px;opacity:0;position:absolute;width:100%;z-index:3}.text-field::placeholder{font-family:var(--font-1);font-size:.8rem;opacity:.6}.clicked-color{background-color:var(--main-color)!important}.clicked-text{color:var(--color-bg)!important}input[type=radio]:checked+.radio-input{background-color:var(--main-color);border-color:var(--main-color)}.clicked{color:var(--color-bg)}#bait,#bot-radio{display:none}.submit-box{align-items:center;border-bottom:.0058vw solid var(--color-black);border-top:.0058vw solid var(--color-black);display:grid;grid-template-columns:80% 20%;height:80px;justify-content:center;position:relative;z-index:2}.submit-box:after{background-color:var(--color-black);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:1.3s;z-index:1}.submit-box:hover:after{transform:scaleX(1)}.submit-box:hover .text-field{color:var(--color-bg);transition-delay:.7s}.submit-box .text-field{border-bottom:none!important;cursor:pointer;height:100%;margin:0;padding-left:2rem;text-align:left;width:100%;z-index:3}.bot-bait{margin:0 -1rem;padding:1rem 0}.align-middle{vertical-align:middle}.arrow-wrapper{z-index:3}.arrow-submit{rotate:180deg}.arrow-submit svg{height:39px;width:62px}.title-upper{color:var(--color-black);font-size:.72em;font-weight:700;letter-spacing:-.045em;text-transform:uppercase}.socials-buttons{display:flex;margin-top:12px}.social-networks{align-items:center;background-color:rgba(1,1,1,0);border:1px solid rgba(1,1,1,.35);border-radius:100%;display:flex;height:52px;justify-content:center;margin-right:4px;width:52px}.social-img{height:24px;width:24px}#overlay{align-items:center;backdrop-filter:blur(4px);background-color:#ffffff5c;display:flex;height:100%;justify-content:center;left:0;top:0;width:100%}#dialog,#overlay{position:fixed;z-index:1002}#dialog{background-color:#fff;border-radius:25px;left:5%;max-width:500px;padding:60px 20px;top:10%;width:80%}.dialog-content{text-align:center}.close-dialog{background:transparent;border:none;cursor:pointer;margin:0;padding:0;position:absolute;right:20px;top:20px}.close-dialog,.icon-close-dialog{height:50px;width:50px}.footer{background-color:var(--color-black);color:#fff;display:grid;grid-template-areas:"... ..." "footer-left footer-right" "footer-footer footer-footer";grid-template-columns:40% 60%;grid-template-rows:20% 1fr 10%;min-height:140vh;position:relative}.footer a:hover{color:var(--main-color)}.footer-right{grid-area:footer-right}.footer-left{counter-reset:footerMapCounter;display:grid;grid-area:footer-left;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.footer-footer{border-top:.0058vw solid var(--main-color);display:flex;grid-area:footer-footer;min-height:6.2rem}.footer-footer-left,.footer-footer-right{align-items:center;display:flex;font-size:.7rem;justify-content:space-between;padding:0 2rem;width:100%}.footer-map-header{color:var(--main-color);counter-increment:footerMapCounter;font-size:1.3rem;padding-inline-start:40px;position:relative;text-transform:uppercase}.footer-map-header:before{align-items:center;border:.0058vw solid var(--main-color);border-radius:100%;content:counter(footerMapCounter);display:flex;font-family:var(--font-2);font-size:.7rem;height:20px;justify-content:center;left:10px;position:absolute;top:0;width:20px}.large-c{font-family:var(--font-1);font-size:31vw;position:relative}.large-c sup{font-size:8vw;position:absolute;right:10px}.large-h{font-family:var(--font-3);font-size:33vw}.footer li{font-family:var(--font-1)}@media (max-width:835px){.large-c,.large-h{font-size:50vw}.large-h{font-family:var(--font-3)}.total-trailers{border-bottom:.0058vw solid var(--color-bg);border-top:.0058vw solid var(--color-bg)}.footer{background-color:var(--color-black);color:#fff;display:grid;grid-template-areas:"... " "footer-left " "footer-right" " footer-footer" "...";grid-template-columns:1fr;grid-template-rows:auto;padding-top:6.2rem}.footer-footer{flex-direction:column;justify-content:space-around}.wrapper.get-in-touch{grid-template-areas:"socials-head" "socials-left " "socials-right" "socials-footer ";grid-template-columns:1fr}.socials-left{padding-bottom:50px}.socials-header{padding:40px 10px}.explore-portfolio,.portfolio-footer{border:none}.hero-portfolio{background-color:var(--color-black);color:var(--color-bg);display:grid;grid-template-areas:"portfolio-head " "portfolio-trailer" "portfolio-text " "portfolio-footer ";grid-template-columns:1fr;grid-template-rows:auto;min-height:100vh;padding:1rem!important}.trailer-view-buton{height:unset}.margin-buttons{align-items:center;display:flex;justify-content:center}.trailer-expla{width:100%}.total-trailers{font-size:4rem;text-align:center;width:100%}.introduction{grid-template-areas:"introtitle" " introexpla" " introfooter";grid-template-columns:1fr;grid-template-rows:auto;min-height:100vh;padding:25px;position:relative}.desc-wrapper{width:100%}.portfolio-head{border:none;display:grid;grid-area:portfolio-head;grid-template-columns:1fr;grid-gap:70px}.port-header-text{align-items:center;display:grid;font-size:calc(var(--mid-font));text-align:center}.socials-brand:before{left:-9px}.socials-brand{padding-left:50px}.socials-header{grid-template-columns:1fr}}@media screen and (max-width:425px){.footer-left ul{padding-left:2rem}.field-box{flex-direction:column}.multicheck,.text-field{width:100%}.trailer-expla{font-size:1.9rem!important}.introduction{padding:0}:root{--mid-largefont:1.3rem}.socials-brand{padding:0 0 20px 50px}}.submit-info:before{background-color:var(--color-black);bottom:-2px;content:"";height:2px;left:0;position:absolute;transition:all .5s ease;width:0}.submit-info{position:relative}.submit-info:hover:before{width:100%}.split-chars{overflow:hidden}html{scroll-behavior:auto}.footer{overflow:hidden}@media screen and (max-width:375px){.footer-left{counter-reset:footerMapCounter;display:grid;gap:10px;grid-area:footer-left;grid-template-columns:1fr!important;padding-left:15px}.footer li{font-family:var(--font-1);font-size:1.2em;padding-bottom:10px}.footer-map-header{font-size:1.6rem}.flexme{display:grid;grid-template-columns:1fr 1fr;padding:0 10px;row-gap:9px}}@media screen and (min-width:1660px){:root,html{font-size:1.4vw}.introduction{grid-template-rows:auto!important}}.tidio-5hhiig{display:none!important}@media screen and (min-width:1024px){.parallax-me-image{height:110%}}@media screen and (min-width:768px) and (max-width:1024px){.parallax-me-image{height:85%}}::selection{background:var(--main-color);color:inherit}.thirtyworks{align-items:center;background-color:var(--color-black);color:var(--color-bg);color:var(--main-color);display:flex;height:fit-content;justify-content:center;min-height:20vh;padding:0 0 50px;position:relative}.thirtyworks .below-line,.thirtyworks .top-line{background-color:var(--main-color)}.top-line{background-color:var(--color-black);height:.052vw;left:0;margin:0;opacity:1;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.thirty-wrapper{align-items:center;display:flex;justify-content:center;padding:20px 0;position:relative;width:100%}.thirty-wrapper svg{height:100%;width:calc(40px + 3vw)}.thirty-left svg{grid-area:thirty-left;transform:rotate(180deg)}@media screen and (max-width:479px){.thirty-left,.thirty-right{height:8em;width:8em}}@media screen and (max-width:767px){.thirty-left,.thirty-right{height:6em;width:6em}.bot-bait{margin:0 1.6rem!important}}.italic{font-style:italic}@media screen and (max-width:991px){.thirty-left,.thirty-right{height:5em;width:5em}}.thirty-left,.thirty-right{height:4em;margin-left:auto;margin-right:auto;width:4em}@media screen and (min-width:1441px){.thirty-center{font-size:var(--hc-xxxl)}}@media screen and (max-width:1440px){.thirty-center{font-size:var(--hc-xxl)}}.thirty-center{color:var(--main-color);font-family:var(--font-3)}.gt-italic{font-family:GT-Alpine,sans-serif}.feature-work{align-items:center;background-color:var(--color-black);color:var(--main-color);display:flex;height:fit-content;justify-content:center;min-height:100vh;padding:6.2rem 1rem 50px}@media screen and (max-width:625px){.feature-wrapper{grid-template-areas:"feature-header" "feature-expla" "feature-image" "feature-expla-2" "feature-image-2"!important;grid-template-columns:1fr!important}:root{--feature-height:80vw}.checkbox-text{font-size:var(--hc-base)}}@media screen and (max-width:767px) and (min-width:626px){:root{--feature-height:18.5em}}.feature-wrapper{display:grid;gap:20px;grid-template-areas:"feature-header feature-header" "feature-expla feature-image" "feature-image-2 feature-expla-2";grid-template-columns:1fr 1fr;width:100%}.feature-image{grid-area:feature-image;height:var(--feature-height);object-fit:cover;position:relative;width:100%}.feature-header{color:var(--main-color);font-family:var(--font-3);font-size:var(--hc-xxl);gap:3rem;grid-area:feature-header}.feature-expla,.feature-header{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.feature-expla{color:var(--color-bg);grid-area:feature-expla;height:var(--feature-height)}.feature-header svg{transform:rotate(-90deg);width:var(--hc-xxl)}.feature-outer-wrapper{border:.0058vw solid hsla(0,0%,95%,.35);display:flex;height:100%;justify-content:center;padding:20px;width:100%}.feature-inner-wrapper{align-content:space-between;border:1px solid hsla(0,0%,95%,.35);display:grid;height:100%;padding:10px;width:100%}.feature-inner-wrapper:hover .feature-view svg{mix-blend-mode:difference;transition-delay:.4s}.fit-image{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.feature-image-2{grid-area:feature-image-2;height:var(--feature-height);object-fit:cover;position:relative;width:100%}.feature-expla-2{align-items:center;display:flex;flex-direction:column;grid-area:feature-expla-2;justify-content:center;text-align:center}.feature-expla-info{color:var(--color-bg);display:grid;flex-direction:column;font-family:var(--font-3);font-size:var(--hc-xxl);grid-template-areas:"feature-info-head feature-case-no" "feature-services feature-services";grid-template-columns:70% 30%;height:max-content;width:100%}.feature-case-no{align-items:center;display:grid;font-family:var(--font-1);font-size:var(--hc-xxxl);grid-area:feature-case-no;justify-content:end;width:100%}.feature-info-head{align-items:center;display:flex;font-family:var(--font-5);font-size:var(--hc-lg);grid-area:feature-info-head;height:100%;justify-content:start;position:relative}.feature-services{display:flex;font-family:sohne-light;font-size:var(--hc-sm);grid-area:feature-services}@media screen and (min-width:768px){.feature-expla,.feature-image{height:70vh}}.feature-info-bottom{display:grid;flex-direction:column;grid-template-columns:70% 30%;height:max-content;width:100%}.feature-year{font-family:var(--font-1);font-size:var(--hc-sm)}.feature-view,.feature-year{align-items:center;display:flex;height:100%}.feature-view{justify-content:end}.feature-view svg{height:var(--hc-xl);rotate:45deg;width:var(--hc-xxl)}.feature_footer{align-items:center;color:var(--main-color);display:grid;justify-content:center;padding:3rem 1.5rem;width:100%}.feature_footer,.feature_footer_inner{background-color:var(--color-black);height:100%}.feature_footer_inner{color:var(--color-bg);font-family:sohne-light;font-size:var(--hc-xxxl);position:relative} \ No newline at end of file diff --git a/css/login.css b/css/login.css index 7ae388c6..2f37d99e 100644 --- a/css/login.css +++ b/css/login.css @@ -1,3 +1,3 @@ *,:after,:before{box-sizing:border-box}:root{margin:0;--fade-black:0,0,0;--fade-main:252,18,52;--color-white:#fff;--color-black:#000;--color-bg:#ece9e1;--color-orangy:#f84f39;--stick-black:#000;--stick-white:#fff;--main-color:#fc1234;--color-third:#bed2f5;--color-forth:#2b2d42;--font-1:sohne-light;--font-2:SpaceGrotesk;--font-3:MonumentExtended;font-size:15px; - /* !aditional */--color-pinkish:#ffeae9;--hc-sm:clamp(0.7rem,0.35vi + 0.61rem,0.89rem);--hc-base:clamp(0.88rem,0.57vi + 0.73rem,1.19rem);--hc-md:clamp(1.09rem,0.89vi + 0.87rem,1.58rem);--hc-lg:clamp(1.37rem,1.35vi + 1.03rem,2.11rem);--hc-xl:clamp(1.71rem,2.01vi + 1.21rem,2.81rem);--hc-xxl:clamp(2.14rem,2.93vi + 1.4rem,3.75rem);--hc-xxxl:clamp(2.67rem,4.23vi + 1.61rem,5rem);--feature-height:22.5em}@font-face{font-display:swap;font-family:sohne-light;src:url(../fonts/sohne-light.woff2) format("woff2")}@font-face{font-display:swap;font-family:SpaceGrotesk;src:url(../fonts/SpaceGrotesk.woff2) format("woff2")}@font-face{font-display:swap;font-family:MonumentExtended;src:url(../fonts/MonumentExtended-Regular.woff) format("woff")}*{scrollbar-width:0!important}h1{font-size:2.986rem}h2{font-size:2.488rem}h3{font-size:2.074rem}h4{font-size:1.728rem}h5{font-size:1.44rem}h6{font-size:1.2rem}p{font-size:1rem}html::-webkit-scrollbar{background-color:var(--color-bg)!important;width:9px!important}html#loginpage{overflow-x:hidden;overflow-y:scroll!important}::-webkit-scrollbar-thumb{background-color:#5a5a5a!important;border:1px solid #f9f9f9!important;border-radius:99px!important}body{font-family:var(--font-3);overflow-x:hidden}body,ul{margin:0}ul{list-style:none}.nav{backdrop-filter:blur(3px);background-color:transparent;border-bottom:1px solid hsla(0,0%,100%,.02);bottom:auto;left:0;position:absolute;right:0;top:0;z-index:200}.nav_grid{grid-column-gap:1rem;grid-row-gap:1rem;align-items:center;display:grid;grid-auto-columns:1fr;grid-auto-flow:row;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;justify-content:space-between}@media screen and (max-width:991px){.nav_grid{grid-column-gap:0;grid-row-gap:0}}.padding_global.nav_padding{padding-bottom:1rem;padding-top:1rem}.padding_global{height:100%;padding-left:2.5%;padding-right:2.5%}.est_nav,.nav_logo_parent{display:flex;overflow:hidden}.menu_line{height:1.23438px;width:100%}.nav_logo_parent{color:var(--color-bg);cursor:pointer;justify-content:flex-start}.est_nav{align-items:flex-start;cursor:pointer;justify-content:center;z-index:201}.est_nav svg{padding-left:8px}.mid-moon--dark{fill:var(--color-black)}.both-icon-menu{display:grid;grid-template-areas:" menuicon menuname";grid-template-columns:repeat(2,1fr);grid-column-gap:3px}.menu_button_wrapper{height:1rem;width:2.25rem;grid-column-gap:.3rem;grid-row-gap:.3rem;align-items:center;display:flex;flex-direction:column;grid-area:menuicon;justify-content:center;overflow:hidden;padding-bottom:0;padding-top:0}.menu_button_line{height:2px;width:100%;grid-column-gap:5px;grid-row-gap:5px;align-items:center;display:flex}.menu-dot-line,.menu_dot{background-color:var(--color-black)}.menu_dot{border-radius:100000rem;height:.1875rem;width:.1875rem}.menu-name{font-family:var(--font-3);grid-area:menuname}.loginwrapper{background-color:var(--color-bg);display:grid;grid-template-areas:"logincanvas loginform";grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:100svh;min-width:100vw}.loginform{align-items:center;grid-area:loginform;grid-template-columns:1fr;grid-template-rows:auto;padding:2em}.logincanvas,.loginform{display:grid;height:100%}.logincanvas{grid-area:logincanvas;padding:0;position:relative}.canvasimage{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:1}.error{color:var(--main-color)}.error,.success{font-family:var(--font-1);font-size:.8rem;font-weight:500;margin-bottom:.5rem;margin-top:.5rem;text-align:center;width:100%}.success{color:green}.inputLogin1,.inputLogin2{background:0 0;border-bottom:1px solid rgba(31,8,8,.2);border-left:0;border-right:0;display:block;font-family:var(--font-1);font-size:inherit;font-size:clamp(18px,1.38vw,27px);font-weight:inherit;height:clamp(65px,5.83vw,112px);padding:0;width:100%}.inputLogin1{border-top:1px solid rgba(31,8,8,.2)}.inputLogin2{border-top:none}input:focus{outline:0}.submitButton{align-items:center;background:var(--color-black);border:none;border-radius:1rem;color:var(--color-bg);cursor:pointer;display:flex;font-family:var(--font-2);font-size:var(--hc-md);padding:1.3rem 2rem;position:relative;transition:opacity .6s cubic-bezier(.215,.61,.355,1),color .6s cubic-bezier(.215,.61,.355,1);z-index:1}.submitButton:before{background-color:var(--main-color);border-radius:1rem;bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;transform:scale3d(0,0,1);transition:transform .3s cubic-bezier(.215,.61,.355,1);z-index:-1}.submitButton:hover:before{transform:scaleX(1)}.submitButton:hover{border:none}input::placeholder{color:var(--color-black);font-family:var(--font-1);font-size:1.2rem;font-weight:500;opacity:.7}.titleLogin{color:var(--color-black);font-family:var(--font-2);font-weight:700}@media (max-width:767px){.loginwrapper{grid-template-columns:1fr}}.consultations-container{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.consultation-card{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:16px;width:300px}.consultation-card h3,.consultation-card p{margin:0 0 8px}.margintop{margin-top:50px}.table-header TableCell{background-color:#f0f0f0;color:var(--color-black);font-weight:700}.sort{background-color:var(--main-color);border:none;border-radius:5px;cursor:pointer;opacity:.5}.searchbyname{background:#edecfa;border:none;border-radius:30px;font-size:.6rem;height:30px;text-align:center}.searchbyname::placeholder{font-size:.7rem}td{font-family:var(--font-1)!important}th{font-family:var(--font-2)!important}.loaderContainer{align-items:center;display:flex;justify-content:center;margin:auto;min-height:70vh;width:calc(100vw - 100px)}.loader{animation:l10 1.5s linear infinite;aspect-ratio:1;background:radial-gradient(circle 16px,currentColor 94%,#0000);color:var(--main-color);display:grid;-webkit-mask:radial-gradient(circle 5px,#0000 90%,#000);width:80px}.loader:after,.loader:before{background:radial-gradient(farthest-side at bottom right,currentColor 94%,#0000) 100% 0,radial-gradient(farthest-side at top left,currentColor 94%,#0000) 0 100%;background-repeat:no-repeat;background-size:40% 45%;content:"";grid-area:1/1;-webkit-mask:radial-gradient(60% 100% at bottom right,#0000 94%,#000) top right,radial-gradient(60% 100% at top left,#0000 94%,#000) bottom left;-webkit-mask-repeat:no-repeat;-webkit-mask-size:40% 45%}.loader:after{transform:rotate(90deg)}@keyframes l10{to{transform:rotate(1turn)}}.pointHere{cursor:pointer;pointer-events:all}.approved,.canceled,.declined,.delivered,.pending{border-radius:300px;display:flex;font-weight:800;justify-content:center;padding:2px 9px;width:fit-content}.delivered{background:#caceeb78;color:#dc38e7}.approved{background-color:#cbfccd;color:#26a532}.pending{background:#c0daff;color:#317ce7}.canceled{background-color:#f3d0ce;color:#b75454}.declined{background-color:#ffd8c4;color:#ee6d19}:root{--color-grownish:#2e3033;--color-grownish-1:#1a1b1e}.welcomeDashboard{grid-area:welcome}.bottomcenter,.welcomeDashboard{align-items:center;background-position:50%;background-size:cover;border-radius:25px;display:grid;justify-content:center}.bottomcenter{background-image:url(../assets/images/ui/man_glasses_style_208430_3840x2400.jpg);grid-area:bottomcenter}.grownish{background-color:var(--color-grownish);border-radius:25px}.todo-list-right{font-family:var(--font-2);grid-area:todo-list} \ No newline at end of file + /* !aditional */--color-pinkish:#ffeae9;--hc-sm:clamp(0.7rem,0.35vi + 0.61rem,0.89rem);--hc-base:clamp(0.88rem,0.57vi + 0.73rem,1.19rem);--hc-md:clamp(1.09rem,0.89vi + 0.87rem,1.58rem);--hc-lg:clamp(1.37rem,1.35vi + 1.03rem,2.11rem);--hc-xl:clamp(1.71rem,2.01vi + 1.21rem,2.81rem);--hc-xxl:clamp(2.14rem,2.93vi + 1.4rem,3.75rem);--hc-xxxl:clamp(2.67rem,4.23vi + 1.61rem,5rem);--feature-height:22.5em}@font-face{font-display:swap;font-family:sohne-light;src:url(../fonts/sohne-light.woff2) format("woff2")}@font-face{font-display:swap;font-family:SpaceGrotesk;src:url(../fonts/SpaceGrotesk.woff2) format("woff2")}@font-face{font-display:swap;font-family:MonumentExtended;src:url(../fonts/MonumentExtended-Regular.woff) format("woff")}*{scrollbar-width:0!important}h1{font-size:2.986rem}h2{font-size:2.488rem}h3{font-size:2.074rem}h4{font-size:1.728rem}h5{font-size:1.44rem}h6{font-size:1.2rem}p{font-size:1rem}html::-webkit-scrollbar{background-color:var(--color-bg)!important;width:9px!important}html#loginpage{overflow-x:hidden;overflow-y:scroll!important}::-webkit-scrollbar-thumb{background-color:#5a5a5a!important;border:1px solid #f9f9f9!important;border-radius:99px!important}body{font-family:var(--font-3);overflow-x:hidden}body,ul{margin:0}ul{list-style:none}.nav{backdrop-filter:blur(3px);background-color:transparent;border-bottom:1px solid hsla(0,0%,100%,.02);bottom:auto;left:0;position:absolute;right:0;top:0;z-index:200}.nav_grid{grid-column-gap:1rem;grid-row-gap:1rem;align-items:center;display:grid;grid-auto-columns:1fr;grid-auto-flow:row;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;justify-content:space-between}@media screen and (max-width:991px){.nav_grid{grid-column-gap:0;grid-row-gap:0}}.padding_global.nav_padding{padding-bottom:1rem;padding-top:1rem}.padding_global{height:100%;padding-left:2.5%;padding-right:2.5%}.est_nav,.nav_logo_parent{display:flex;overflow:hidden}.menu_line{height:1.23438px;width:100%}.nav_logo_parent{color:var(--color-bg);cursor:pointer;justify-content:flex-start}.est_nav{align-items:flex-start;cursor:pointer;justify-content:center;z-index:201}.est_nav svg{padding-left:8px}.mid-moon--dark{fill:var(--color-black)}.both-icon-menu{display:grid;grid-template-areas:" menuicon menuname";grid-template-columns:repeat(2,1fr);grid-column-gap:3px}.menu_button_wrapper{height:1rem;width:2.25rem;grid-column-gap:.3rem;grid-row-gap:.3rem;align-items:center;display:flex;flex-direction:column;grid-area:menuicon;justify-content:center;overflow:hidden;padding-bottom:0;padding-top:0}.menu_button_line{height:2px;width:100%;grid-column-gap:5px;grid-row-gap:5px;align-items:center;display:flex}.menu-dot-line,.menu_dot{background-color:var(--color-black)}.menu_dot{border-radius:100000rem;height:.1875rem;width:.1875rem}.menu-name{font-family:var(--font-3);grid-area:menuname}.loginwrapper{background-color:var(--color-bg);display:grid;grid-template-areas:"logincanvas loginform";grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:100svh;min-height:100vh;min-width:100vw}.loginform{align-items:center;grid-area:loginform;grid-template-columns:1fr;grid-template-rows:auto;padding:2em}.logincanvas,.loginform{display:grid;height:100%}.logincanvas{grid-area:logincanvas;padding:0;position:relative}.canvasimage{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:1}.error{color:var(--main-color)}.error,.success{font-family:var(--font-1);font-size:.8rem;font-weight:500;margin-bottom:.5rem;margin-top:.5rem;text-align:center;width:100%}.success{color:green}.inputLogin1,.inputLogin2{background:0 0;border-bottom:1px solid rgba(31,8,8,.2);border-left:0;border-right:0;display:block;font-family:var(--font-1);font-size:inherit;font-size:clamp(18px,1.38vw,27px);font-weight:inherit;height:clamp(65px,5.83vw,112px);padding:0;width:100%}.inputLogin1{border-top:1px solid rgba(31,8,8,.2)}.inputLogin2{border-top:none}input:focus{outline:0}.submitButton{align-items:center;background:var(--color-black);border:none;border-radius:1rem;color:var(--color-bg);cursor:pointer;display:flex;font-family:var(--font-2);font-size:var(--hc-md);padding:1.3rem 2rem;position:relative;transition:opacity .6s cubic-bezier(.215,.61,.355,1),color .6s cubic-bezier(.215,.61,.355,1);z-index:1}.submitButton:before{background-color:var(--main-color);border-radius:1rem;bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;transform:scale3d(0,0,1);transition:transform .3s cubic-bezier(.215,.61,.355,1);z-index:-1}.submitButton:hover:before{transform:scaleX(1)}.submitButton:hover{border:none}input::placeholder{color:var(--color-black);font-family:var(--font-1);font-size:1.2rem;font-weight:500;opacity:.7}.titleLogin{color:var(--color-black);font-family:var(--font-2);font-weight:700}@media (max-width:767px){.loginwrapper{grid-template-columns:1fr}}.consultations-container{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.consultation-card{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:16px;width:300px}.consultation-card h3,.consultation-card p{margin:0 0 8px}.margintop{margin-top:50px}.table-header TableCell{background-color:#f0f0f0;color:var(--color-black);font-weight:700}.sort{background-color:var(--main-color);border:none;border-radius:5px;cursor:pointer;opacity:.5}.searchbyname{background:#edecfa;border:none;border-radius:30px;font-size:.6rem;height:30px;text-align:center}.searchbyname::placeholder{font-size:.7rem}td{font-family:var(--font-1)!important}th{font-family:var(--font-2)!important}.loaderContainer{align-items:center;display:flex;justify-content:center;margin:auto;min-height:70vh;width:calc(100vw - 100px)}.loader{animation:l10 1.5s linear infinite;aspect-ratio:1;background:radial-gradient(circle 16px,currentColor 94%,#0000);color:var(--main-color);display:grid;-webkit-mask:radial-gradient(circle 5px,#0000 90%,#000);width:80px}.loader:after,.loader:before{background:radial-gradient(farthest-side at bottom right,currentColor 94%,#0000) 100% 0,radial-gradient(farthest-side at top left,currentColor 94%,#0000) 0 100%;background-repeat:no-repeat;background-size:40% 45%;content:"";grid-area:1/1;-webkit-mask:radial-gradient(60% 100% at bottom right,#0000 94%,#000) top right,radial-gradient(60% 100% at top left,#0000 94%,#000) bottom left;-webkit-mask-repeat:no-repeat;-webkit-mask-size:40% 45%}.loader:after{transform:rotate(90deg)}@keyframes l10{to{transform:rotate(1turn)}}.pointHere{cursor:pointer;pointer-events:all}.approved,.canceled,.declined,.delivered,.pending{border-radius:300px;display:flex;font-weight:800;justify-content:center;padding:2px 9px;width:fit-content}.delivered{background:#caceeb78;color:#dc38e7}.approved{background-color:#cbfccd;color:#26a532}.pending{background:#c0daff;color:#317ce7}.canceled{background-color:#f3d0ce;color:#b75454}.declined{background-color:#ffd8c4;color:#ee6d19}:root{--color-grownish:#2e3033;--color-grownish-1:#1a1b1e}.welcomeDashboard{grid-area:welcome}.bottomcenter,.welcomeDashboard{align-items:center;background-position:50%;background-size:cover;border-radius:25px;display:grid;justify-content:center}.bottomcenter{background-image:url(../assets/images/ui/man_glasses_style_208430_3840x2400.jpg);grid-area:bottomcenter}.grownish{background-color:var(--color-grownish);border-radius:25px}.todo-list-right{font-family:var(--font-2);grid-area:todo-list} \ No newline at end of file diff --git a/css/projects.css b/css/projects.css index a6de55c8..1cca6eb5 100644 --- a/css/projects.css +++ b/css/projects.css @@ -1 +1 @@ -html{overflow-y:scroll}#project-page body{background-color:var(--color-black);color:var(--color-bg)}.nav{backdrop-filter:blur(5px);bottom:auto;left:0;position:fixed!important;top:0;width:100vw;z-index:200}.menu-dot-line{background-color:var(--color-bg)}@media screen and (max-width:768px){.projectImage2-inner img,.projectImage2-inner video{max-width:100svw}.projectImage2{grid-template-areas:"projectImage2-left " "projectImage2-right"!important;grid-template-columns:1fr!important;padding:1rem;row-gap:1rem}.projectHeroWrapper{min-height:70vh!important}.projectAim{grid-template-areas:"Aimleft" " Aimright" " Aimcenter"!important;min-height:19.5rem}.projectAbout,.projectAim{grid-template-columns:1fr!important;padding:1rem!important}.projectAbout{row-gap:2rem}.Aimleft,.aboutLeft,.solutionLeft{font-size:larger;font-weight:800;text-align:center}.projectSolution{display:grid;grid-template-areas:"solutionLeft" " solutionCenter" " solutionRight"!important;grid-template-columns:1fr!important;padding:3rem 1rem!important;text-align:left}.projectMetadata,.projectSolution{justify-content:space-between;row-gap:2rem}.projectMetadata{color:var(--color-bg);grid-area:projectMetadata;grid-template-areas:"client" " tasks " " year"!important;grid-template-columns:1fr!important;height:max-content;min-height:9.5rem;padding:3rem 20px;text-align:center}.projecttask{text-align:unset!important}}#project-page .nav_logo_parent{color:var(--color-bg)}#project-page .mid-moon--dark{fill:var(--color-bg)}#project-page .below-line{background-color:var(--color-bg)}.est_nav{fill:var(--color-bg)}.projectHeroWrapper{display:grid;grid-template-areas:"frame" "content";grid-template-columns:100%;grid-template-rows:min-content 1fr;min-height:100vh;grid-row-gap:8vh}.projectHero{display:grid;grid-area:content;grid-column-gap:10vw;grid-row-gap:1rem;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr auto auto}.preview__img{display:grid;grid-area:1/1/2/-1;grid-template-rows:1fr;min-height:200px;overflow:hidden;pointer-events:none;position:relative;width:100%;will-change:transform}.preview__img-inner{background-position:50% 25%;background-size:cover;height:100%;position:absolute;width:100%;will-change:transform}.preview__img-inner video{width:100vw}.preview__title{align-self:center;font-family:var(--font-3),sans-serif;font-size:8vw;font-weight:300;grid-area:1/1/2/-1;justify-self:center;line-height:.7;margin:2rem 0;text-transform:uppercase;white-space:nowrap}.preview__title-inner{display:inline-block;line-height:.7;padding-top:3%;will-change:transform}.projectDetails{display:grid;grid-template-areas:"projectMetadata projectMetadata" "projectAbout projectAbout" "projectImage1 projectImage1" "projectAim projectAim" "projectImage2 projectImage2" "projectSolution projectSolution" "remainingImages remainingImages";grid-template-columns:1fr 1fr;grid-template-rows:auto;position:relative}.projectSolution{color:var(--color-bg);display:grid;font-family:var(--font-1);font-size:var(--hc-md);grid-area:projectSolution;grid-template-areas:"solutionLeft solutionCenter solutionRight";grid-template-columns:30% 50% 20%;justify-content:space-between;min-height:15.5rem;padding:3rem 0;text-align:left}.solutionLeft{display:grid;grid-area:solutionLeft;justify-content:center}.projectAbout{color:var(--color-bg);display:grid;font-family:var(--font-1);font-size:var(--hc-md);grid-area:projectAbout;grid-template-columns:30% 50% 20%;justify-content:space-between;min-height:15.5rem;padding:3rem 0}.aboutCenter,.projectAbout,.projecttask{text-align:left}.aboutLeft{text-align:center}.projectMetadata{color:var(--color-bg);grid-area:projectMetadata;grid-template-areas:"client tasks year";height:max-content;justify-content:space-between;min-height:9.5rem;padding:3rem 20px;text-align:center}.projectAim,.projectMetadata{display:grid;font-family:var(--font-1);grid-template-columns:30% 50% 20%}.projectAim{font-size:var(--hc-md);grid-area:projectAim;grid-template-areas:"Aimleft Aimcenter Aimright";min-height:19.5rem;padding:20vh 0}.Aimleft{font-weight:900;text-align:center}.projectclient,.projectyear{align-content:center;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;justify-content:start}.metaDataheader{font-size:var(--hc-lg);font-weight:900}.projectImage1-inner{mask-image:url(../assets/svg/3b.svg);mask-repeat:no-repeat;mask-size:contain;max-width:90vw}.projectImage1{display:grid;grid-area:projectImage1;justify-content:center;padding:3rem 0}.projectImage1-inner img{max-width:100vw;position:relative}.projectImage2{column-gap:1rem;display:grid;grid-area:projectImage2;grid-template-areas:"projectImage2-left projectImage2-right";grid-template-columns:50% 49%;padding:4rem 1rem 3rem}.projectImage2-right{display:grid;grid-area:projectImage2-right;justify-content:left;overflow:hidden}.projectImage2-left{display:grid;grid-area:projectImage2-left;justify-content:right;overflow:hidden}.projectImage2-inner img,.projectImage2-inner video{max-height:100svh}@media screen and (min-width:768px){.projectImage2-inner img,.projectImage2-inner video{max-height:100svh;max-width:50vw}}.remainingImages{column-gap:1rem;grid-area:remainingImages;grid-template-columns:auto;padding:4rem 1rem 3rem;row-gap:4rem}.otherImage-inner,.remainingImages{display:grid;justify-content:center}.otherImage-inner img,.otherImage-inner video{max-width:96vw}.relative{position:relative!important}.absolute{position:absolute!important} \ No newline at end of file +html{overflow-y:scroll}#project-page body{background-color:var(--color-black);color:var(--color-bg)}.nav{backdrop-filter:blur(5px);bottom:auto;left:0;position:fixed!important;top:0;width:100vw;z-index:200}.menu-dot-line{background-color:var(--color-bg)}@media screen and (max-width:768px){.thirty-center{font-size:var(--hc-xl)}.thirty-wrapper svg{height:100%;width:calc(28px + 3vw)}.projectAim{row-gap:2rem}.projectImage2-inner img,.projectImage2-inner video{max-height:100vw!important}.projectImage2{grid-template-areas:"projectImage2-left " "projectImage2-right"!important;grid-template-columns:1fr!important;padding:1rem;row-gap:1rem}.projectHeroWrapper{min-height:70vh!important}.projectAim{grid-template-areas:"Aimleft" " Aimright" " Aimcenter"!important;min-height:19.5rem}.projectAbout,.projectAim{grid-template-columns:1fr!important;padding:1rem!important}.projectAbout{row-gap:2rem}.Aimleft,.aboutLeft,.solutionLeft{font-size:larger;font-weight:800;text-align:center}.projectSolution{display:grid;grid-template-areas:"solutionLeft" " solutionCenter" " solutionRight"!important;grid-template-columns:1fr!important;padding:3rem 1rem!important;text-align:left}.projectMetadata,.projectSolution{justify-content:space-between;row-gap:2rem}.projectMetadata{color:var(--color-bg);grid-area:projectMetadata;grid-template-areas:"client" " tasks " " year"!important;grid-template-columns:1fr!important;height:max-content;min-height:9.5rem;padding:3rem 20px;text-align:center}.projecttask{text-align:unset!important}}#project-page .nav_logo_parent{color:var(--color-bg)}#project-page .mid-moon--dark{fill:var(--color-bg)}#project-page .below-line{background-color:var(--main-color)}.est_nav{fill:var(--color-bg)}.projectHeroWrapper{display:grid;grid-template-areas:"frame" "content";grid-template-columns:100%;grid-template-rows:min-content 1fr;min-height:100vh;grid-row-gap:8vh}.projectHero{display:grid;grid-area:content;grid-column-gap:10vw;grid-row-gap:1rem;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr auto auto}.preview__img{display:grid;grid-area:1/1/2/-1;grid-template-rows:1fr;min-height:200px;overflow:hidden;pointer-events:none;position:relative;width:100%;will-change:transform}.preview__img-inner{background-position:50% 25%;background-size:cover;height:100%;position:absolute;width:100%;will-change:transform}.preview__img-inner video{width:100vw}.preview__title{align-self:center;font-family:var(--font-3),sans-serif;font-size:8vw;font-weight:300;grid-area:1/1/2/-1;justify-self:center;line-height:.7;margin:2rem 0;text-transform:uppercase;white-space:nowrap}.preview__title-inner{display:inline-block;line-height:.7;padding-top:3%;will-change:transform}.projectDetails{display:grid;grid-template-areas:"projectMetadata projectMetadata" "projectAbout projectAbout" "projectImage1 projectImage1" "projectAim projectAim" "projectImage2 projectImage2" "projectSolution projectSolution" "remainingImages remainingImages";grid-template-columns:1fr 1fr;grid-template-rows:auto;position:relative}.projectSolution{color:var(--color-bg);display:grid;font-family:var(--font-1);font-size:var(--hc-md);grid-area:projectSolution;grid-template-areas:"solutionLeft solutionCenter solutionRight";grid-template-columns:30% 50% 20%;justify-content:space-between;min-height:15.5rem;padding:3rem 0;text-align:left}.solutionLeft{display:grid;grid-area:solutionLeft;justify-content:center}.projectAbout{color:var(--color-bg);display:grid;font-family:var(--font-1);font-size:var(--hc-md);grid-area:projectAbout;grid-template-columns:30% 50% 20%;justify-content:space-between;min-height:15.5rem;padding:3rem 0}.aboutCenter,.projectAbout,.projecttask{text-align:left}.aboutLeft{text-align:center}.projectMetadata{color:var(--color-bg);grid-area:projectMetadata;grid-template-areas:"client tasks year";height:max-content;justify-content:space-between;min-height:9.5rem;padding:3rem 20px;text-align:center}.projectAim,.projectMetadata{display:grid;font-family:var(--font-1);grid-template-columns:30% 50% 20%}.projectAim{font-size:var(--hc-md);grid-area:projectAim;grid-template-areas:"Aimleft Aimcenter Aimright";min-height:19.5rem;padding:20vh 0}.Aimleft{font-weight:900;text-align:center}.projectclient,.projectyear{align-content:center;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;justify-content:start}.metaDataheader{font-size:var(--hc-lg);font-weight:900}.lowercase{text-transform:lowercase}.projectImage1-inner{mask-image:url(../assets/svg/3b.svg);mask-repeat:no-repeat;mask-size:contain;max-width:90vw}.projectImage1{display:grid;grid-area:projectImage1;justify-content:center;padding:3rem 0}.projectImage1-inner img{max-width:100vw;position:relative}.projectImage2{column-gap:1rem;display:grid;grid-area:projectImage2;grid-template-areas:"projectImage2-left projectImage2-right";grid-template-columns:50% 49%;padding:4rem 1rem 3rem}.projectImage2-right{display:grid;grid-area:projectImage2-right;justify-content:left;overflow:hidden}.projectImage2-left{display:grid;grid-area:projectImage2-left;justify-content:right;overflow:hidden}.projectImage2-inner img,.projectImage2-inner video{max-height:100svh;max-height:100vh}@media screen and (min-width:768px){.projectImage2-inner img,.projectImage2-inner video{max-height:100svh;max-height:100vh;max-width:50vw}}@media screen and (max-width:768px){.projectImage1-inner img,.projectImage1-inner video,.projectImage2-inner img,.projectImage2-inner video{max-width:calc(100vw - 2rem)}}.remainingImages{column-gap:1rem;grid-area:remainingImages;grid-template-columns:auto;padding:4rem 1rem 3rem;row-gap:4rem}.otherImage-inner,.remainingImages{display:grid;justify-content:center}.otherImage-inner img,.otherImage-inner video{max-width:96vw}.relative{position:relative!important}.absolute{position:absolute!important}.footer__link-top{cursor:pointer}.deco-svg{display:inline-flex;justify-content:center;width:100%}.deco-svg img{max-width:4rem}.thirtyworks{padding:7rem 0} \ No newline at end of file diff --git a/css/services.css b/css/services.css index df61c3ab..4472ebfb 100644 --- a/css/services.css +++ b/css/services.css @@ -1 +1 @@ -.hero-services{display:grid;grid-template-areas:"..." "hero-service";grid-template-columns:1fr;grid-template-rows:30% 50% 20%;min-height:100vh;overflow:hidden}.animate{line-height:1;overflow:hidden}.inner-service2:nth-last-of-type(3):before{background-image:url(../assets/images/0775-1.webp);background-position:50% 43%;background-repeat:no-repeat;background-size:81%;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.hero-service{font-family:unset;font-size:calc(8vw + 10px);grid-area:hero-service;line-height:1.4;padding:0 2.5% 4rem;text-align:center;text-transform:uppercase;z-index:4}.img_wrapper.studio_hero{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:1}.img{height:100%;object-fit:cover;width:100%}figure{margin:0}.under-hero .intro-title:before{content:"🚀";rotate:90deg}.under-heross{grid-template-rows:auto;min-height:100svh;overflow:hidden}.introduction,.under-heross{display:grid;grid-template-columns:30% 70%}.introduction{background-color:#222!important;color:var(--color-bg);grid-template-areas:"introtitle introexpla" "... introfooter";grid-template-rows:1fr 200px;min-height:100vh;position:relative}.morestudio a{border:.0058vw solid var(--color-bg);color:var(--color-bg)}.divider-line{background-color:var(--color-bg)}.morestudio svg{fill:#fff}.div-block-42{display:flex;height:100%;padding-top:0}.div-block-42,.marquee-horizontal{overflow:hidden}.service-welcome{align-items:center;display:grid;min-height:30vh}.service-head{align-items:center;background-color:var(--color-bg);grid-template-columns:1fr 2fr;height:max-content;padding:40px 25px;width:100%}.service-head,.service-subtitle{display:grid;justify-content:center;position:relative}.service-subtitle{grid-column:1/2;padding-top:0}.service-subtitle:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"いち";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.service-discover-title{align-content:start;font-size:3rem;grid-column:2/3}.service-all-wrapper{counter-reset:serviceMe}.service-main{background-color:var(--color-bg);display:grid;grid-template-areas:"servicetitle servicebody" "serviceanimation servicebody";grid-template-columns:40% 60%;min-height:100vh;padding:60px 20px;position:relative}.service-title{counter-increment:serviceMe;display:flex;font-family:var(--font-1);font-size:2rem;grid-area:servicetitle;justify-content:center;position:relative}.service-title:before{border:.0058vw solid var(--color-black);border-radius:100%;content:counter(serviceMe);font-size:12px;left:0;padding:7px 14px;position:absolute;top:0}.service-body{display:grid;grid-area:servicebody;grid-template-rows:3fr 2fr}.service-expla{font-family:var(--font-1);font-size:1.9rem}.service-animation{align-items:center;display:grid;grid-area:serviceanimation}@keyframes rotate360{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.cb-overview-icon.-rotating video,.service-animation>svg{animation:rotate360 5s linear infinite;height:5rem}.service-tools{padding-top:20px}.tools-tags{padding-top:10px}.tool-tag{border:1px solid;border-radius:49px;display:inline-block;font-family:var(--font-1);font-size:2.1rem;font-size:20px;font-weight:500;line-height:110%;margin:.7rem;margin:.4rem;padding:.8rem 1.5rem;padding:.4rem 1rem;text-transform:uppercase}.divider-service{background-color:var(--color-black);height:.052vw;left:0;margin:0;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;shape-rendering:geometricprecision}.rotter{height:76px;width:310px}.stroka-icon svg>*{stroke-dasharray:148 10;-webkit-animation:strokax 5s linear infinite;animation:strokax 5s linear infinite}@keyframes strokax{0%{stroke-dashoffset:0;stroke-dasharray:148 10}50%{stroke-dasharray:135 30}to{stroke-dashoffset:157;stroke-dasharray:148 10}}.stroka-icon{display:flex;height:5rem;justify-content:center;width:70%}.after-service{background-color:var(--main-color);display:grid;grid-template-areas:"redifine" "xp";grid-template-columns:1fr;min-height:100vh;overflow:hidden;position:relative}.hc-greeting-bg{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.hc-greeting-bg-media,.hc-greeting-bg-media img{height:100%}.welcome-processes{display:grid;font-size:9vw;grid-area:redifine;padding:20vh 25px;position:relative;z-index:2}.inline-gif img{border-radius:105px;height:calc(8rem - 1vw)}.inline-gif{align-items:center;display:inline-flex;gap:20px}.cool-video{background-color:var(--color-black);display:grid;grid-template-columns:1fr;min-height:150vh;padding-top:100px}:root{--relative-rem:0.625vw}@media (min-width:768px){.cb-intro-figure{height:99vh;margin:0 0 0 auto;width:auto;width:97vw}}.cb-intro-figure{height:345px;margin:0 auto;width:345px}.cb-intro-figure-media{border-radius:1000px;height:100%;overflow:hidden;position:relative;transform:translateZ(0);width:100%}.cb-intro-figure-media video{bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}@media screen and (max-width:991px){.circle-arrow{margin-left:9%}}.circle-arrow{align-items:center;border:1px solid hsla(0,0%,95%,.35);border-radius:100%;cursor:pointer;display:flex;height:5.8em;justify-content:center;margin-left:12%;width:5.8em}@media screen and (min-width:768px){.morestudio{justify-content:end;padding:0 46px}}.intro-studio{font-family:var(--font-1)!important}.proof-experience{align-items:center;display:grid;grid-area:xp;grid-template-columns:repeat(3,1fr);padding:40px 0;position:relative}.top-border{background-color:var(--color-black);height:.052vw;left:0;margin:0;opacity:1;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0);will-change:transform,opacity}.more-xp,.projects-xp,.years-xp{display:flex;flex-direction:column}.xp-footer{font-size:1.2rem;text-align:center}.xp-head{font-size:7vw;text-align:center}.services-video{border-radius:45px;height:100vh;width:100%}.inner-service-video{height:100%;object-fit:cover;width:100%}.languages{color:var(--color-bg)}.language-names{align-items:center;border-bottom:.0058vw solid var(--color-bg);display:grid;font-size:calc(1.4vw + 10px);grid-template-columns:40% 60%;grid-template-rows:auto;padding:100px 0}.language-svg svg{height:50px}.language-marquee{padding:40px 0}:root{--size:clamp(10rem,1rem + 35vmin,30rem);--gap:calc(var(--size)/14);--duration:60s;--scroll-start:0;--scroll-end:calc(-100% - var(--gap));--size-small:clamp(10rem,1rem + 10vmin,30rem)}*{box-sizing:border-box}@media (max-width:767px){:root{--gap:calc(var(--size)/30)}.marquee svg{scale:.6}.language-expla{font-size:1.02rem!important}.service-main{background-color:var(--color-bg);display:grid;grid-template-areas:"servicetitle" "serviceanimation " " servicebody";grid-template-columns:1fr;min-height:100vh;padding:60px 7%;position:relative;row-gap:30px}.service-expla{font-family:var(--font-1);font-size:1.2rem;padding-bottom:2rem}.tool-tag{font-size:1rem}.service-head{grid-template-columns:1fr;grid-template-rows:1fr 1fr;row-gap:40px;text-align:center}.service-discover-title{font-size:2.2rem;grid-column:1/2}.inline-gif{align-items:center;display:grid;gap:20px;justify-content:center}.inline-gif img{justify-self:center}.proof-experience{font-family:var(--font-1)}.language-names{gap:30px;grid-template-columns:1fr;padding:5%}.top-exit{grid-template-rows:auto!important;margin-bottom:20px}.bottom-exit,.top-exit{display:grid;grid-template-columns:1fr!important}.bottom-exit{justify-items:center!important;row-gap:30px}.contact-service{transform:scale(1);transition:transform .5s cubic-bezier(.4,0,0,1)}.top-exit h2{text-align:center}.service-contact{display:grid}.contact-service{display:grid;justify-self:center}.circle-arrow{margin-left:0;width:5.8em}.service-title:before{top:-34px}}@media screen and (min-width:768px) and (max-width:990px){.service-expla{font-size:1.6rem!important}.service-title{font-size:1.5rem}}.marquee{overflow:hidden;user-select:none}.marquee,.marquee__group{display:flex;gap:var(--gap)}.marquee__group{align-items:center;animation:scroll-x var(--duration) linear infinite;flex-shrink:0;justify-content:space-around;min-width:100%}@media (prefers-reduced-motion:reduce){.marquee__group{animation-play-state:paused}}.marquee--vertical{--mask-direction:to bottom}.marquee--vertical,.marquee--vertical .marquee__group{flex-direction:column}.marquee--vertical .marquee__group{animation-name:scroll-y}.marquee--reverse .marquee__group{animation-delay:-3s;animation-direction:reverse}@keyframes scroll-x{0%{transform:translateX(var(--scroll-start))}to{transform:translateX(var(--scroll-end))}}@keyframes scroll-y{0%{transform:translateY(var(--scroll-start))}to{transform:translateY(var(--scroll-end))}}.marquee svg{display:grid;place-items:center;width:var(--size);fill:var(--color-bluish);aspect-ratio:10/5;border-radius:.5rem}.marquee--vertical svg{aspect-ratio:1;padding:calc(var(--size)/6);width:calc(var(--size)/1.5)}.wrapper{display:flex;flex-direction:column;gap:var(--gap);margin:auto;max-width:100vw}.wrapper--vertical{flex-direction:row;height:100vh}@keyframes fade{to{opacity:0;visibility:hidden}}.exit-services{background-color:var(--color-bg);min-height:100vh;padding:100px 40px;position:relative}.exit-services,.wrap-exit{display:grid;grid-template-columns:1fr}.wrap-exit{z-index:3}.profile-picture{background:url(../assets/images/0412-1.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;display:inline-flex;height:.85em;margin-right:.125em;position:relative;transform:translateY(.09em);width:.85em}.top-exit h2{font-size:calc(5vw + 10px)}.top-exit{align-items:center;border-bottom:.0058vw solid var(--color-black);display:grid;grid-template-columns:65% 35%;grid-template-rows:1fr;padding-bottom:20px}.contact-service{background:transparent;border:1px solid var(--color-black);border-radius:60px;cursor:pointer;outline:none;overflow:hidden;padding:45px 50px;position:relative;transition:transform .5s cubic-bezier(.4,0,0,1)}.contact-service:hover{animation:animate-scaleX .6s cubic-bezier(.4,0,0,1)}.contact-service:after{background:#000;border-radius:50% 50% 0 0;bottom:0;content:"";height:100%;left:0;position:absolute;transform:translateY(100%);transition:transform .5s cubic-bezier(.4,0,0,1),border-radius .5s cubic-bezier(.4,0,0,1);width:100%}.contact-service:hover:after{border-radius:0;transform:translateY(0)}.contact-service span{display:inline-block;font-size:24px;font-weight:500;overflow:hidden;position:relative}.contact-service span:after{bottom:0;color:#fff;content:attr(data-text);display:inline-block;height:100%;left:50%;position:absolute;transform:translate(-50%,100%);transition:transform .5s cubic-bezier(.4,0,0,1);width:100%;z-index:1}.contact-service:hover span:after{transform:translate(-50%)}@keyframes animate-scaleX{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}to{transform:scaleX(1)}}.service-contact{cursor:pointer}.dont-hold{font-family:var(--font-1);font-size:1.2rem}@media screen and (min-width:768px){.service-contact{cursor:pointer;justify-self:flex-end}.dont-hold{font-family:var(--font-1);font-size:1.2rem;max-width:50vw}.language-expla{font-size:1.32rem;padding:0 15px}}.bottom-exit{display:grid;grid-template-columns:1fr 1fr;justify-items:end}.scroll-service-down{align-items:center;display:grid;gap:20px;grid-column:1/2;grid-row:3/4;grid-template-columns:1fr auto 1fr;justify-content:center;z-index:3}.scroll-service-down span{text-align:center;width:fit-content} \ No newline at end of file +.hero-services{display:grid;grid-template-areas:"..." "hero-service";grid-template-columns:1fr;grid-template-rows:30% 50% 20%;min-height:100vh;overflow:hidden}.animate{line-height:1;overflow:hidden}.inner-service2:nth-last-of-type(3):before{background-image:url(../assets/images/0775-1.webp);background-position:50% 43%;background-repeat:no-repeat;background-size:81%;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.hero-service{font-family:unset;font-size:calc(8vw + 10px);grid-area:hero-service;line-height:1.4;padding:0 2.5% 4rem;text-align:center;text-transform:uppercase;z-index:4}.img_wrapper.studio_hero{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:1}.img{height:100%;object-fit:cover;width:100%}figure{margin:0}.under-hero .intro-title:before{content:"🚀";rotate:90deg}.under-heross{grid-template-rows:auto;min-height:100svh;overflow:hidden}.introduction,.under-heross{display:grid;grid-template-columns:30% 70%}.introduction{background-color:#222!important;color:var(--color-bg);grid-template-areas:"introtitle introexpla" "... introfooter";grid-template-rows:1fr 200px;min-height:100vh;position:relative}.morestudio a{border:.0058vw solid var(--color-bg);color:var(--color-bg)}.divider-line{background-color:var(--color-bg)}.morestudio svg{fill:#fff}.div-block-42{display:flex;height:100%;padding-top:0}.div-block-42,.marquee-horizontal{overflow:hidden}.service-welcome{align-items:center;display:grid;min-height:30vh}.service-head{align-items:center;background-color:var(--color-bg);grid-template-columns:1fr 2fr;height:max-content;padding:40px 25px;width:100%}.service-head,.service-subtitle{display:grid;justify-content:center;position:relative}.service-subtitle{grid-column:1/2;padding-top:0}.service-subtitle:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"いち";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.service-discover-title{align-content:start;font-size:3rem;grid-column:2/3}.service-all-wrapper{counter-reset:serviceMe}.service-main{background-color:var(--color-bg);display:grid;grid-template-areas:"servicetitle servicebody" "serviceanimation servicebody";grid-template-columns:40% 60%;min-height:100vh;padding:60px 20px;position:relative}.service-title{counter-increment:serviceMe;display:flex;font-family:var(--font-1);font-size:2rem;grid-area:servicetitle;justify-content:center;position:relative}.service-title:before{border:.0058vw solid var(--color-black);border-radius:100%;content:counter(serviceMe);font-size:12px;left:0;padding:7px 14px;position:absolute;top:0}.service-body{display:grid;grid-area:servicebody;grid-template-rows:3fr 2fr}.service-expla{font-family:var(--font-1);font-size:1.9rem}.service-animation{align-items:center;display:grid;grid-area:serviceanimation}@keyframes rotate360{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.cb-overview-icon.-rotating video,.service-animation>svg{animation:rotate360 5s linear infinite;height:5rem}.service-tools{padding-top:20px}.tools-tags{padding-top:10px}.tool-tag{border:1px solid;border-radius:49px;display:inline-block;font-family:var(--font-1);font-size:2.1rem;font-size:20px;font-weight:500;line-height:110%;margin:.7rem;margin:.4rem;padding:.8rem 1.5rem;padding:.4rem 1rem;text-transform:uppercase}.divider-service{background-color:var(--color-black);height:.052vw;left:0;margin:0;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;shape-rendering:geometricprecision}.rotter{height:76px;width:310px}.stroka-icon svg>*{stroke-dasharray:148 10;-webkit-animation:strokax 5s linear infinite;animation:strokax 5s linear infinite}@keyframes strokax{0%{stroke-dashoffset:0;stroke-dasharray:148 10}50%{stroke-dasharray:135 30}to{stroke-dashoffset:157;stroke-dasharray:148 10}}.stroka-icon{display:flex;height:5rem;justify-content:center;width:70%}.after-service{background-color:var(--main-color);display:grid;grid-template-areas:"redifine" "xp";grid-template-columns:1fr;min-height:100vh;overflow:hidden;position:relative}.hc-greeting-bg{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.hc-greeting-bg-media,.hc-greeting-bg-media img{height:100%}.welcome-processes{display:grid;font-size:9vw;grid-area:redifine;padding:20vh 25px;position:relative;z-index:2}.inline-gif img{border-radius:105px;height:calc(8rem - 1vw)}.inline-gif{align-items:center;display:inline-flex;gap:20px}.cool-video{background-color:var(--color-black);display:grid;grid-template-columns:1fr;min-height:150vh;padding-top:100px}:root{--relative-rem:0.625vw}@media (min-width:768px){.cb-intro-figure{height:99vh;margin:0 0 0 auto;width:auto;width:97vw}}.cb-intro-figure{height:345px;margin:0 auto;width:345px}.cb-intro-figure-media{border-radius:1000px;height:100%;overflow:hidden;position:relative;transform:translateZ(0);width:100%}.cb-intro-figure-media video{bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}@media screen and (max-width:991px){.circle-arrow{margin-left:9%}}.circle-arrow{align-items:center;border:1px solid hsla(0,0%,95%,.35);border-radius:100%;cursor:pointer;display:flex;height:5.8em;justify-content:center;margin-left:12%;width:5.8em}@media screen and (min-width:768px){.morestudio{justify-content:end;padding:0 46px}}.intro-studio{font-family:var(--font-1)!important}.proof-experience{align-items:center;display:grid;grid-area:xp;grid-template-columns:repeat(3,1fr);padding:40px 0;position:relative}.top-border{background-color:var(--color-black);height:.052vw;left:0;margin:0;opacity:1;position:absolute;top:0;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0);will-change:transform,opacity}.more-xp,.projects-xp,.years-xp{display:flex;flex-direction:column}.xp-footer{font-size:1.2rem;text-align:center}.xp-head{font-size:7vw;text-align:center}.services-video{border-radius:45px;height:100vh;width:100%}.inner-service-video{height:100%;object-fit:cover;width:100%}.languages{color:var(--color-bg)}.language-names{align-items:center;border-bottom:.0058vw solid var(--color-bg);display:grid;font-size:calc(1.4vw + 10px);grid-template-columns:40% 60%;grid-template-rows:auto;padding:100px 0}.language-svg svg{height:50px}.language-marquee{padding:40px 0}:root{--size:clamp(10rem,1rem + 35vmin,30rem);--gap:calc(var(--size)/14);--duration:60s;--scroll-start:0;--scroll-end:calc(-100% - var(--gap));--size-small:clamp(10rem,1rem + 10vmin,30rem)}*{box-sizing:border-box}@media (max-width:767px){:root{--gap:calc(var(--size)/30)}.marquee svg{scale:.6}.language-expla{font-family:var(--font-1);font-size:1.02rem!important}.service-main{background-color:var(--color-bg);display:grid;grid-template-areas:"servicetitle" "serviceanimation " " servicebody";grid-template-columns:1fr;min-height:100vh;padding:60px 7%;position:relative;row-gap:30px}.service-expla{font-family:var(--font-1);font-size:1.2rem;padding-bottom:2rem}.tool-tag{font-size:1rem}.service-head{grid-template-columns:1fr;grid-template-rows:1fr 1fr;row-gap:40px;text-align:center}.service-discover-title{font-size:2.2rem;grid-column:1/2}.inline-gif{align-items:center;display:grid;gap:20px;justify-content:center}.inline-gif img{justify-self:center}.proof-experience{font-family:var(--font-1)}.language-names{gap:30px;grid-template-columns:1fr;padding:5%}.top-exit{grid-template-rows:auto!important;margin-bottom:20px}.bottom-exit,.top-exit{display:grid;grid-template-columns:1fr!important}.bottom-exit{justify-items:center!important;row-gap:30px}.contact-service{transform:scale(1);transition:transform .5s cubic-bezier(.4,0,0,1)}.top-exit h2{text-align:center}.service-contact{display:grid}.contact-service{display:grid;justify-self:center}.circle-arrow{margin-left:0;width:5.8em}.service-title:before{top:-34px}}@media screen and (min-width:768px) and (max-width:990px){.service-expla{font-size:1.6rem!important}.service-title{font-size:1.5rem}}.marquee{overflow:hidden;user-select:none}.marquee,.marquee__group{display:flex;gap:var(--gap)}.marquee__group{align-items:center;animation:scroll-x var(--duration) linear infinite;flex-shrink:0;justify-content:space-around;min-width:100%}@media (prefers-reduced-motion:reduce){.marquee__group{animation-play-state:paused}}.marquee--vertical{--mask-direction:to bottom}.marquee--vertical,.marquee--vertical .marquee__group{flex-direction:column}.marquee--vertical .marquee__group{animation-name:scroll-y}.marquee--reverse .marquee__group{animation-delay:-3s;animation-direction:reverse}@keyframes scroll-x{0%{transform:translateX(var(--scroll-start))}to{transform:translateX(var(--scroll-end))}}@keyframes scroll-y{0%{transform:translateY(var(--scroll-start))}to{transform:translateY(var(--scroll-end))}}.marquee svg{display:grid;place-items:center;width:var(--size);fill:var(--color-bluish);aspect-ratio:10/5;border-radius:.5rem}.marquee--vertical svg{aspect-ratio:1;padding:calc(var(--size)/6);width:calc(var(--size)/1.5)}.wrapper{display:flex;flex-direction:column;gap:var(--gap);margin:auto;max-width:100vw}.wrapper--vertical{flex-direction:row;height:100vh}@keyframes fade{to{opacity:0;visibility:hidden}}.exit-services{background-color:var(--color-bg);min-height:100vh;padding:100px 40px;position:relative}.exit-services,.wrap-exit{display:grid;grid-template-columns:1fr}.wrap-exit{z-index:3}.profile-picture{background:url(../assets/images/0412-1.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;display:inline-flex;height:.85em;margin-right:.125em;position:relative;transform:translateY(.09em);width:.85em}.top-exit h2{font-size:calc(5vw + 10px)}.top-exit{align-items:center;border-bottom:.0058vw solid var(--color-black);display:grid;grid-template-columns:65% 35%;grid-template-rows:1fr;padding-bottom:20px}.contact-service{background:transparent;border:1px solid var(--color-black);border-radius:60px;cursor:pointer;outline:none;overflow:hidden;padding:45px 50px;position:relative;transition:transform .5s cubic-bezier(.4,0,0,1)}.contact-service:hover{animation:animate-scaleX .6s cubic-bezier(.4,0,0,1)}.contact-service:after{background:#000;border-radius:50% 50% 0 0;bottom:0;content:"";height:100%;left:0;position:absolute;transform:translateY(100%);transition:transform .5s cubic-bezier(.4,0,0,1),border-radius .5s cubic-bezier(.4,0,0,1);width:100%}.contact-service:hover:after{border-radius:0;transform:translateY(0)}.contact-service span{display:inline-block;font-size:24px;font-weight:500;overflow:hidden;position:relative}.contact-service span:after{bottom:0;color:#fff;content:attr(data-text);display:inline-block;height:100%;left:50%;position:absolute;transform:translate(-50%,100%);transition:transform .5s cubic-bezier(.4,0,0,1);width:100%;z-index:1}.contact-service:hover span:after{transform:translate(-50%)}@keyframes animate-scaleX{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}to{transform:scaleX(1)}}.service-contact{cursor:pointer}.dont-hold{font-family:var(--font-1);font-size:1.2rem}@media screen and (min-width:768px){.service-contact{cursor:pointer;justify-self:flex-end}.dont-hold{font-family:var(--font-1);font-size:1.2rem;max-width:50vw}.language-expla{font-size:1.32rem;padding:0 15px}}.bottom-exit{display:grid;grid-template-columns:1fr 1fr;justify-items:end}.scroll-service-down{align-items:center;display:grid;gap:20px;grid-column:1/2;grid-row:3/4;grid-template-columns:1fr auto 1fr;justify-content:center;z-index:3}.scroll-service-down span{text-align:center;width:fit-content} \ No newline at end of file diff --git a/css/studio.css b/css/studio.css index 1775086c..c9ed4849 100644 --- a/css/studio.css +++ b/css/studio.css @@ -1 +1 @@ -:root{--ff-style:"Unbounded",cursive;--fs-d1:clamp(2.566rem,-0.1492rem + 10.8608vw,5.96rem);--fs-d2:clamp(2.281rem,0.2914rem + 7.9584vw,4.768rem);--fs-d3:clamp(2.074rem,0.5966rem + 5.7216vw,3.815rem);--fs-d4:clamp(1.728rem,0.5966rem + 4.7216vw,3.815rem);--fs-1:clamp(1.802rem,0.802rem + 4vw,3.052rem);--fs-2:clamp(1.602rem,0.9308rem + 2.6848vw,2.441rem);--fs-3:clamp(1.424rem,1.0008rem + 1.6928vw,1.953rem);--fs-4:clamp(1.266rem,1.0284rem + 0.9504vw,1.563rem);--fs-5:clamp(1.125rem,1.025rem + 0.4vw,1.25rem);--fs-6:clamp(1rem,1rem + 0vw,1rem);--fs-regular:clamp(1rem,1rem + 0vw,1rem);--fs-xsmall:clamp(0.875rem,0.875rem + 0vw,0.875rem);--fs-xxsmall:clamp(0.5rem,0.375rem + 0.5vw,0.75rem);--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--gap-small:clamp(1rem,2vw,24px);--gap-large:clamp(2rem,1rem + 2.6667vw,3rem);--b-shadow-small:0 0.125rem 0.25rem (var(--color-black),0.075)!important;--b-shadow-medium:0 0.5rem 1rem (var(--color-black),0.15)!important;--b-shadow-large:0 1rem 3rem (var(--color-black),0.175)!important}body,main{position:relative}main{border-radius:12px;margin:4px 2px 0 4px;overflow:hidden}.below-line{background-color:var(--color-bg)!important}.hero-studio{background-color:var(--color-bg);background-color:var(--color-black);grid-template-areas:"... ... " "studio-name studio-name " "studio-mini ... " "below-hero below-hero ";grid-template-columns:repeat(2,1fr);grid-template-rows:10% auto auto 20%;min-height:100svh}.hero-studio,.studio-name{color:var(--color-bg);display:grid}.studio-name{font-size:20vw;grid-area:studio-name;mix-blend-mode:difference;text-align:center;z-index:3}.studio-mini{display:grid;font-family:var(--font-1);font-size:1.2rem;grid-area:studio-mini;padding:5px 25px}.hero-circles{background-image:url(../assets/images/works/Hypercritical-hero.webp);background-position:100%;background-repeat:no-repeat;grid-column:2/4;grid-row:2/5;z-index:2}.nav{color:var(--color-bg)}.nav svg{fill:var(--color-bg)}@media screen and (max-width:400px){.est-hero{padding:20px 10px!important}.div-svg svg{height:60px}.why-workus-header{font-size:6vw}}@media screen and (min-width:768px){.expla-left{display:flex;justify-self:center;width:70%}.message{font-size:1.728rem;padding:0 1rem}.why-footer>div,.why-workus-header{font-size:var(--fs-d3)}}@media screen and (max-width:768px){.studio-mini{align-items:center;display:grid;font-size:1.2rem;grid-area:studio-mini;grid-column:1/3;padding:5px 25px}.hero-circles{background:url(../assets/images/works/down-mask.png);background-position:50% 36%;background-repeat:no-repeat;background-size:34vw;grid-column:1/4;grid-row:2/4;z-index:2}}@media screen and (max-width:954px) and (min-width:768px){.hero-circles{background-size:46vw}.partner-logo{scale:.7}}.est-hero{padding:20px 40px}.below-hero{align-items:end;display:grid;grid-area:below-hero;grid-template-columns:1fr auto 1fr;justify-content:center}.div-svg svg{rotate:90deg}.div-svg{cursor:pointer;z-index:3}.arrow-pathy{transform-origin:center}.div-svg:hover{animation:rotater 1s ease}.rotater{animation:rotater 1.5s ease infinite}@keyframes rotater{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.below-studio-hero{background-color:var(--color-bg);display:grid;min-height:calc(100vh + 20px)}.below-studio-outer-wrapper{background-color:var(--color-black);border-bottom-left-radius:44px;border-bottom-right-radius:44px;color:var(--color-black);display:grid;padding:10px;width:100%}.below-studio-inner-wrapper{background-color:var(--color-bg);border-radius:44px;color:var(--color-black);display:grid;grid-template-areas:"..." " transform " "side-innovate";grid-template-columns:1fr;width:100%}.studio-intro{align-content:center;display:grid;grid-area:transform;grid-template-columns:10% auto 10%;justify-content:center;padding:20px}.studio-intro .h1{font-family:var(--font-1);font-size:7.5vw;font-weight:400;grid-column:2/3;height:fit-content;letter-spacing:-.02em;line-height:1.1;margin-bottom:0;margin-top:0}.side-innovate{align-items:center;display:grid;grid-area:side-innovate;justify-content:center;overflow:visible}.side-innovate img{height:9vw;rotate:-63deg;width:auto}.intro-story{background-color:var(--color-bg);min-height:150svh;padding:20px 5px}.intro-story,.story-wrapper{display:grid;position:relative}.story-wrapper{background-color:var(--color-black);border-radius:45px;grid-template-areas:"top-story" "story-stats";grid-template-columns:1fr;grid-template-rows:2fr 1fr;height:150vh}.story-wrapper-inner{background-color:var(--main-color);border-radius:45px;box-shadow:inset;grid-area:top-story;height:100vh;position:relative}.story-stats{grid-area:story-stats}.proof-experience{align-items:center;color:var(--color-bg);display:grid;font-family:var(--font-1);grid-area:proof-experience;grid-template-columns:repeat(3,1fr);padding:10px 0;position:relative}.more-xp,.projects-xp,.years-xp{display:flex;flex-direction:column}.xp-head{font-size:7.5vw;text-align:center}.xp-footer{font-size:1.2rem;text-align:center}.story-wrapper-inner{display:grid;grid-template-areas:"story-head story-head" "storyleft storyright ";grid-template-columns:repeat(2,1fr);grid-template-rows:10% 90%;padding:30px 20px}.story-left{align-items:center;display:grid;grid-area:storyleft;justify-content:center}.story-right{display:grid;grid-area:storyright;grid-template-columns:1fr;grid-template-rows:auto}.story-right .header{font-family:var(--font-3);text-align:center}.genesis-story{font-family:var(--font-1);font-size:1.8rem;font-weight:600}.title-story{grid-area:story-head;padding-left:100px;position:relative;width:100%}.title-story:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"に";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.story-left img{height:auto;position:relative;width:100%}@media screen and (max-width:767px){.why-box{grid-template-columns:1fr!important;padding:4rem 8px!important}.why-left{align-items:center;flex-direction:column-reverse}.why-footer>div{font-size:7vw}.story-left img{height:auto;max-width:23vw;width:100%}.story-wrapper-inner{display:grid;grid-template-areas:"story-head" "storyleft" " storyright ";grid-template-columns:1fr;grid-template-rows:10% auto auto;padding:30px 20px}.story-right{display:grid;grid-area:storyright;grid-template-columns:1fr;grid-template-rows:auto;justify-self:center;width:99%}.genesis-story{font-family:var(--font-1);font-size:calc(3vw + 10px);font-weight:600}}.container-x{--max-width__screen:100%;--max-width__laptops:1400px;--max-width__blogs:1100px;margin-inline:auto;width:min(var(--max-width__screen),100% - (var(--padding) * 2))}html:focus-within{scroll-behavior:smooth}@media (prefers-reduced-motion:media){html:focus-within{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;-webkit-transition-duration:.01ms!important;-o-transition-duration:.01ms!important;transition-duration:.01ms!important}}.display-1{color:var(--color-white);font-family:var(--font-1);font-size:var(--fs-d1);font-weight:var(--fw-medium);margin:0;padding:.3rem 0 1rem}.container-x label,.container-x p,.container-x span{color:var(--color-white);font-family:var(--font-3);font-size:var(--fs-regular);font-weight:var(--fw-regular)}@media screen and (max-width:600px){.container-x label,.container-x p,.container-x span{font-family:var(--font-1)}}.line{border-bottom:2px solid var(--color-black);width:100%}.cont{border-radius:45px}.main-cont{display:grid;gap:1rem;padding:2px 8px}@media (min-width:768px){.main-cont .m-cont-2{display:grid;gap:0 0;grid-template-areas:"sm-cont-21 sm-cont-22" "sm-cont-23 sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}@media (max-width:767px){.below-studio-hero{min-height:calc(50vh + 20px)!important}.xp-footer{font-size:1rem}.story-wrapper{height:130vh!important}.customer-says{padding:20px 9px 100px!important}.swiperx-wrapper{margin:unset!important;width:90vw!important}.contact-boxes-wrapper{grid-template-columns:1fr!important}.contact-image{width:50%!important}.contact-box .h4{max-width:90%!important}.contact-intro{font-size:calc(2vw + 10px)!important}.testimonial-image{height:calc(2vw + 49px)!important;transition:all .3s ease;width:calc(2vw + 49px)!important}.main-cont{overflow:hidden}.main-cont,.main-cont .cont{height:100vh}.sm-cont-21{grid-area:sm-cont-21;padding:3rem 1rem!important}.main-cont .cont{border-radius:2rem}}.main-cont .cont-category{border:1px solid var(--color-white);border-radius:100vw;padding:.2rem .8rem;width:fit-content}.main-cont p{color:var(--color-white);font-size:var(--fs-small);font-weight:var(--fw-medium)}.main-cont .m-cont-2{display:grid;gap:1rem;grid-template-areas:"sm-cont-21 sm-cont-22 sm-cont-23";grid-template-columns:1fr 1fr 1fr}@media only screen and (max-width:1600px){.main-cont .m-cont-2{display:grid;gap:0 0;grid-template-areas:"sm-cont-21 sm-cont-22" "sm-cont-23 sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}@media only screen and (max-width:992px){.main-cont .m-cont-2{display:grid;gap:0;grid-template-areas:"sm-cont-21" "sm-cont-22" "sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}.sm-cont-21{background:var(--color-white);display:flex;flex-direction:column;grid-area:sm-cont-21;justify-content:space-between;padding:3rem}.m-cont-2 a,.m-cont-2 h1,.m-cont-2 p{color:var(--color-black)}.m-cont-2 .cont-category{border-color:var(--color-black)}.sm-cont-21 .line{position:relative}.sm-cont-21 .line:after{background-color:var(--color-black);border-radius:100vw;content:"";height:12px;position:absolute;right:0;top:-6px;width:12px}.sm-cont-21__footer{align-items:center;display:grid;gap:1rem;grid-template-columns:50px 1fr;justify-content:center;padding-top:1.8rem}.ri-lightbulb-line{border-right:1px solid var(--color-black);color:var(--color-white);color:var(--color-black);display:grid;font-size:var(--fs-3);place-content:center}.campaign{align-items:flex-end;align-self:flex-end;display:flex;justify-content:space-between;padding:1rem 0;position:relative}.campaign-line{border-bottom:1px solid var(--color-black)}p.campaign-info.progress-value{font-size:var(--fs-3);font-weight:var(--fw-bold)}.progress{border:1px solid var(--color-black);border-radius:100vw;height:15px;overflow:hidden;position:relative;width:100%}.progress .color{background-color:var(--color-black);border-radius:15px;height:13px;left:0;position:absolute;top:0;transform-origin:left;width:0}@keyframes progress{0%{width:0}to{width:100%}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.why-workus{background-color:var(--color-black);border-radius:45px;display:grid;grid-template-columns:1fr;grid-template-rows:auto;margin:10px 5px;min-height:100vh}.why-workus-header{color:var(--color-bg);display:grid;display:flex;font-family:var(--font-3);height:fit-content;justify-content:center;padding:4rem 0;text-align:left}.why-box-wrapper{display:grid;justify-self:center;max-width:85vw}.why-box{border-bottom:.058vw solid var(--color-bg);border-top:.058vw solid var(--color-bg);color:var(--color-bg);display:grid;font-family:var(--font-1);grid-template-columns:repeat(2,1fr);height:auto;padding:4rem 30px}.why-left{display:flex;flex-wrap:nowrap;justify-content:space-around}.why-left svg{width:35px;fill:#fff;stroke:#fff;height:35px;margin-top:15px}.why-main{font-size:1.4rem}.why-right p{font-size:1.2rem}.why-footer{background:var(--color-bg);border-radius:45px;cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing;display:flex;margin:7px;min-height:31vw}.why-footer>div{margin:auto;width:85vw}.eye-wrapper{background-color:var(--color-white);border-radius:45px;cursor:grab;display:inline-flex;height:1em;justify-content:center;position:relative;width:124px}.why-footer-top{padding-bottom:20px}.why-footer-bottom,.why-footer-top{display:flex;justify-content:center}.why-footer-bottom{align-items:center;gap:20px}.why-box:last-of-type{border-bottom:none}.eye-el{background-color:var(--main-color);height:.6em;width:.6em}.circle-radius{border-radius:50%}.abs-center{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.pabs{position:absolute}.inline_block{display:inline-block}.eye-el-inner{background-color:#131313;height:.2em;width:.2em}.customer-says{background-color:var(--color-white);border-top-left-radius:45px;border-top-right-radius:45px;display:grid;grid-area:testimonials;grid-template-columns:1fr;grid-template-rows:20% 80%;margin:10px 5px 0;min-height:100vh;padding:20px 50px 100px;position:relative;row-gap:20px}.swiper-top{display:flex;justify-content:center}.swiper-header{display:grid;font-family:var(--font-3);font-size:var(--fs-1);height:fit-content;line-height:1.1;padding:3rem 0;position:relative;text-align:center}.swiper-header:before{border:3px solid #fff;border-radius:50%;bottom:-6px;height:15px;left:50%;transform:translatex(-50%);width:15px;z-index:9}.swiper-header:after,.swiper-header:before{background-color:var(--main-color);content:"";position:absolute}.swiper-header:after{bottom:0;height:2px;left:25%;right:25%}.swiperx-wrapper{display:grid;grid-template-areas:"before message after";grid-template-columns:auto 1fr auto;margin:auto;overflow:hidden;padding:30px 0;position:relative;width:70vw}.swiper-slide{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh}.message-wrapper{display:grid;grid-template-areas:"message" "user";grid-template-columns:1fr;grid-template-rows:auto;height:100%;position:relative}.message{font-family:var(--font-1);grid-area:message}.message,.user{color:var(--color-black)}.user{display:grid;font-family:var(--font-3);font-size:2rem;grid-area:user;text-align:center}.before-testimonial{grid-area:before}.after-testimonial,.before-testimonial{font-family:var(--font-1);font-size:11.5vw;line-height:7vw;width:12.5%}.after-testimonial{align-items:end;display:flex;grid-area:after;justify-items:end}.swiper{cursor:pointer;grid-area:message;height:fit-content;max-width:100vw;overflow:auto;width:100%}.testimonial-bottom{align-items:center;display:flex;font-size:2rem;font-weight:500;gap:20px;margin-top:35px}.testimonial-image{border-radius:50%;height:92px;overflow:hidden;width:92px}.testimonial-image img{height:auto;width:100%}.testimonial-credits{column-gap:20px;display:flex;flex-direction:column;font-family:var(--font-1);font-size:1.2rem}.clientel{background-color:var(--color-bg);display:grid;grid-template-areas:"clientel-head" "clientel-body";grid-template-columns:1fr;grid-template-rows:20% auto;height:fit-content;min-height:30vh;padding:75px 10px}.clientel-head{align-items:center;display:grid;grid-area:clientel-head;justify-content:center;position:relative}.clientel-head-inner{background-color:var(--main-color);border:1px solid #000;border-radius:20px;color:var(--color-black);display:inline-flex;font-size:16px;margin:0 0 20px;padding:5px 10px}.clientel-body{display:flex;grid-area:clientel-body;justify-content:space-evenly;margin:auto;width:100%}.partner-logo{display:flex;height:45px;position:relative;transition:all .5s cubic-bezier(.25,.46,.45,.94)}.partner-logo img{cursor:pointer;height:100%;width:auto}@media screen and (max-width:767px){.clientel-body{align-items:center;display:grid;gap:34px;grid-template-columns:1fr 1fr;justify-content:center;margin:auto}.partner-logo{column-gap:20px;display:flex;height:9vw!important;margin:auto;position:relative;width:auto}.clientel{padding:45px 10px}.clientel-body{padding:27px 0}}.vicstatelogo-small{height:70%!important;justify-self:center;margin:auto;width:auto}.vicstatelogo-large{height:80px!important;margin-top:-20%}.clientel-body{padding:68px 0}.customer-contact-wrap{background-color:var(--color-bg);display:grid;grid-template-areas:"testimonials" "now-contact";grid-template-columns:1fr;grid-template-rows:auto}.customer-contact{align-items:center;background-color:var(--color-forth);border-radius:45px;display:flex;flex-direction:column;grid-area:now-contact;margin:-50px 5px 10px;min-height:50vw;padding:0 80px 80px;z-index:2}.footer{border-top-left-radius:45px;border-top-right-radius:45px}.contact-intro{color:var(--color-bg);font-family:var(--font-3);font-size:var(--fs-1);margin:0 0 60px;max-width:900px;padding-top:4rem;text-align:center}.contact-boxes-wrapper{display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto;grid-gap:10px;gap:10px;padding:0 80px;width:100%}.contact-box{border-radius:30px;display:flex;transform:translateY(-10px)}.contact-box:first-child{background-color:#d9db4d;transition-delay:.05s}.contact-box:nth-child(2){background-color:#dcb688;transition-delay:.1s}.contact-box:nth-child(3){background-color:#bed2f5}.contact-box>a{color:var(--color-black);padding:30px;width:100%}.contact-box .h4{font-family:var(--font-1);font-size:1.7rem;font-weight:600;margin:2.2rem 0;max-width:220px;min-height:90px;text-align:center}.contact-image{aspect-ratio:1/1;border-radius:50%;margin:auto auto 60px;-webkit-mask-image:-webkit-radial-gradient(#fff,#000);overflow:hidden;position:relative;width:95%}.contact-image img{border:none;height:0;inset:0;margin:auto;max-height:100%;max-width:100%;min-height:100%;min-width:100%;object-fit:cover;width:0}.contact-image img,.image-wrap-box{box-sizing:border-box;display:block;padding:0;position:absolute}.image-wrap-box{background:none;border:0;bottom:0;height:auto;left:0;margin:0;opacity:1;overflow:hidden;right:0;top:0;width:auto}.Trake_tile_button{bottom:0;position:absolute;right:0}.Button_ArrowCont__WrhN_{background-color:var(--color-forth);border-radius:50% 0 0 0;margin:0 -10px -10px 0;padding:10px}.Button_Button__vVAZK{align-items:center;background:transparent;border:none;color:transparent;cursor:pointer;display:inline-flex;justify-content:center;outline:0;text-decoration:none}.Button_ArrowCont__WrhN_:focus,.Button_Button__vVAZK:focus,.Trake_tile_button:focus{outline:none}.Button_Button__vVAZK>span{align-items:center;display:flex;height:100%;transition:.15s;width:100%;z-index:1}.Button_Arrow__LawjV{align-items:center;background-color:var(--color-white);border:1px solid var(--color-white);border-radius:50%;color:var(--stick-black);display:flex;height:50px;justify-content:center;outline:none;transition:all .4s ease;width:50px}.Trake_tile_button:focus,.Trake_tile_button:hover{background:transparent;border:none;outline:none}.Button_Arrow__LawjV>svg{display:block;height:14px;transition:.3s;width:14px}.Button_Arrow__LawjV path{fill:none!important}.Button_ArrowCont__WrhN_ path{fill:var(--color-forth)}.Button_ArrowCont__WrhN_>svg:last-of-type{border:none;bottom:0;left:-13px;right:auto;top:auto}.Button_ArrowCont__WrhN_>svg{background:transparent;border:none;display:block;position:absolute;right:-1px;top:-18px;transform:rotate(180deg) scale(1.01);width:20px;shape-rendering:geometricPrecision}.blog-front-card:hover .Button_Arrow__LawjV{outline:none;transform:rotate(-45deg);transition:transform .6s ease}.blog_front_card:hover .Button_Arrow__LawjV>svg{transform:scale(1.2);transition:transform .3 ease}.Img_Img__73sGi,.contact-box{transition:all .4s ease}.contact-box:hover{transform:translateY(-25px)}.contact-box:hover .Img_Img__73sGi{transform:scale(1.1)}.contact-box:hover .Button_Arrow__LawjV{transform:rotate(-45deg)}@media (max-width:930px){.contact-boxes-wrapper{padding:0 20px}.customer-contact{padding:0 0 80px}}.partner-modal{background:rgba(0,0,0,.8);display:grid;height:100%;left:0;opacity:0;place-items:center;pointer-events:none;pointer-events:all;position:fixed;scale:0;top:0;transform:scale(1.03);width:100%;z-index:203}.partner-modal-inner{overflow:hidden;position:relative;width:95%}.partner-close{background:none;border:1px solid #000;border-radius:50%;color:#fff;cursor:pointer;display:grid;font-size:26px;height:40px;place-items:center;position:absolute;right:20px;top:35px;transition:transform .3s;width:40px;z-index:5}.partner-close svg{transform:scale(.8)}.partner-divide{display:flex;font-size:clamp(1rem,.886rem + .36vw,1.25rem);gap:10px;margin:20px auto;max-width:1200px;position:relative}.partner-right{background:var(--color-third);border-radius:30px;padding:50px;width:70%}.partner-pill{background-color:#fff;border:0;border-radius:20px;display:inline-flex;font-family:var(--font-3);font-size:1rem;margin:0 0 20px;padding:5px 10px}.inline-flex{align-items:center;display:inline-flex;justify-content:center}.viewbutton{border-radius:50% 0 0 0;margin:0 -10px -10px 0;padding:10px}.partner-intro{font-family:var(--font-1);font-size:1.2rem;margin-top:30px}.view-parnerbutton{align-items:center;color:#000;cursor:pointer;display:inline-flex;justify-content:center;margin:30px 0 0;outline:0;text-decoration:none}.partner-left{background-color:#fff;border-radius:30px;min-height:500px;overflow:hidden;width:30%}.partner-left,.partner-left-inner{align-items:center;display:flex;justify-content:center}.partner-left-inner{height:100%;max-height:80%;max-width:80%;width:100%}.partner-left-inner a{display:block;height:100%;width:100%}.partner-left-inner span{position:relative}.partner-left img{height:auto;max-width:100%;min-height:100%;object-fit:contain}.more-explanation{font-family:var(--font-1);font-size:1.2rem}.founder{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;padding:2rem 0}@media screen and (max-width:768px){.partner-divide{display:flex!important;flex-direction:column!important;overflow:auto!important}.partner-left{margin:auto!important;max-height:150px!important;min-height:120px!important;width:95%!important}.partner-left-inner{max-width:68%!important}.partner-right{margin:auto!important;padding:1rem!important;width:95%!important}.partner-right h3{font-size:1.3rem}.partner-pill{font-size:1rem!important;margin:0 0 1rem!important}.partner-intro{margin-top:1rem!important}.view-parnerbutton{margin:1.5rem 0 0!important}}.lineChild{overflow:hidden}@media screen and (max-width:425px){.swiper-header{padding:2rem 0!important}} \ No newline at end of file +:root{--ff-style:"Unbounded",cursive;--fs-d1:clamp(2.566rem,-0.1492rem + 10.8608vw,5.96rem);--fs-d2:clamp(2.281rem,0.2914rem + 7.9584vw,4.768rem);--fs-d3:clamp(2.074rem,0.5966rem + 5.7216vw,3.815rem);--fs-d4:clamp(1.728rem,0.5966rem + 4.7216vw,3.815rem);--fs-1:clamp(1.802rem,0.802rem + 4vw,3.052rem);--fs-2:clamp(1.602rem,0.9308rem + 2.6848vw,2.441rem);--fs-3:clamp(1.424rem,1.0008rem + 1.6928vw,1.953rem);--fs-4:clamp(1.266rem,1.0284rem + 0.9504vw,1.563rem);--fs-5:clamp(1.125rem,1.025rem + 0.4vw,1.25rem);--fs-6:clamp(1rem,1rem + 0vw,1rem);--fs-regular:clamp(1rem,1rem + 0vw,1rem);--fs-xsmall:clamp(0.875rem,0.875rem + 0vw,0.875rem);--fs-xxsmall:clamp(0.5rem,0.375rem + 0.5vw,0.75rem);--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--gap-small:clamp(1rem,2vw,24px);--gap-large:clamp(2rem,1rem + 2.6667vw,3rem);--b-shadow-small:0 0.125rem 0.25rem (var(--color-black),0.075)!important;--b-shadow-medium:0 0.5rem 1rem (var(--color-black),0.15)!important;--b-shadow-large:0 1rem 3rem (var(--color-black),0.175)!important}body,main{position:relative}main{border-radius:12px;margin:4px 2px 0 4px;overflow:hidden}.below-line{background-color:var(--color-bg)!important}.hero-studio{background-color:var(--color-bg);background-color:var(--color-black);grid-template-areas:"... ... " "studio-name studio-name " "studio-mini ... " "below-hero below-hero ";grid-template-columns:repeat(2,1fr);grid-template-rows:10% auto auto 20%;min-height:100svh;min-height:100vh}.hero-studio,.studio-name{color:var(--color-bg);display:grid}.studio-name{font-size:20vw;grid-area:studio-name;mix-blend-mode:difference;text-align:center;z-index:3}.studio-mini{display:grid;font-family:var(--font-1);font-size:1.2rem;grid-area:studio-mini;padding:5px 25px}.hero-circles{background-image:url(../assets/images/works/Hypercritical-hero.webp);background-position:100%;background-repeat:no-repeat;grid-column:2/4;grid-row:2/5;z-index:2}.nav{color:var(--color-bg)}.nav svg{fill:var(--color-bg)}@media screen and (max-width:400px){.est-hero{padding:20px 10px!important}.div-svg svg{height:60px}.why-workus-header{font-size:6vw}}@media screen and (min-width:768px){.expla-left{display:flex;justify-self:center;width:70%}.message{font-size:1.728rem;padding:0 1rem}.why-footer>div,.why-workus-header{font-size:var(--fs-d3)}}@media screen and (max-width:768px){.studio-mini{align-items:center;display:grid;font-size:1.2rem;grid-area:studio-mini;grid-column:1/3;padding:5px 25px}.hero-circles{background:url(../assets/images/works/down-mask.png);background-position:50% 36%;background-repeat:no-repeat;background-size:34vw;grid-column:1/4;grid-row:2/4;z-index:2}}@media screen and (max-width:954px) and (min-width:768px){.hero-circles{background-size:46vw}.partner-logo{scale:.7}}.est-hero{padding:20px 40px}.below-hero{align-items:end;display:grid;grid-area:below-hero;grid-template-columns:1fr auto 1fr;justify-content:center}.div-svg svg{rotate:90deg}.div-svg{cursor:pointer;z-index:3}.arrow-pathy{transform-origin:center}.div-svg:hover{animation:rotater 1s ease}.rotater{animation:rotater 1.5s ease infinite}@keyframes rotater{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.below-studio-hero{background-color:var(--color-bg);display:grid;min-height:calc(100vh + 20px)}.below-studio-outer-wrapper{background-color:var(--color-black);border-bottom-left-radius:44px;border-bottom-right-radius:44px;color:var(--color-black);display:grid;padding:10px;width:100%}.below-studio-inner-wrapper{background-color:var(--color-bg);border-radius:44px;color:var(--color-black);display:grid;grid-template-areas:"..." " transform " "side-innovate";grid-template-columns:1fr;width:100%}.studio-intro{align-content:center;display:grid;grid-area:transform;grid-template-columns:10% auto 10%;justify-content:center;padding:20px}.studio-intro .h1{font-family:var(--font-1);font-size:7.5vw;font-weight:400;grid-column:2/3;height:fit-content;letter-spacing:-.02em;line-height:1.1;margin-bottom:0;margin-top:0}.side-innovate{align-items:center;display:grid;grid-area:side-innovate;justify-content:center;overflow:visible}.side-innovate img{height:9vw;rotate:-63deg;width:auto}.intro-story{background-color:var(--color-bg);min-height:150svh;padding:20px 5px}.intro-story,.story-wrapper{display:grid;position:relative}.story-wrapper{background-color:var(--color-black);border-radius:45px;grid-template-areas:"top-story" "story-stats";grid-template-columns:1fr;grid-template-rows:2fr 1fr;height:150vh}.story-wrapper-inner{background-color:var(--main-color);border-radius:45px;box-shadow:inset;grid-area:top-story;height:100vh;position:relative}.story-stats{grid-area:story-stats}.proof-experience{align-items:center;color:var(--color-bg);display:grid;font-family:var(--font-1);grid-area:proof-experience;grid-template-columns:repeat(3,1fr);padding:10px 0;position:relative}.more-xp,.projects-xp,.years-xp{display:flex;flex-direction:column}.xp-head{font-size:7.5vw;text-align:center}.xp-footer{font-size:1.2rem;text-align:center}.story-wrapper-inner{display:grid;grid-template-areas:"story-head story-head" "storyleft storyright ";grid-template-columns:repeat(2,1fr);grid-template-rows:10% 90%;padding:30px 20px}.story-left{align-items:center;display:grid;grid-area:storyleft;justify-content:center}.story-right{display:grid;grid-area:storyright;grid-template-columns:1fr;grid-template-rows:auto}.story-right .header{font-family:var(--font-3);text-align:center}.genesis-story{font-family:var(--font-1);font-size:1.8rem;font-weight:600}.title-story{grid-area:story-head;padding-left:100px;position:relative;width:100%}.title-story:before{align-items:center;border:.0058vw solid;border-radius:100%;content:"に";display:flex;flex-flow:column;height:36px;justify-content:center;left:35px;position:absolute;top:-7px;width:36px}.story-left img{height:auto;position:relative;width:100%}@media screen and (max-width:767px){.contact-boxes-wrapper{padding:0 .2rem!important}.Button_ArrowCont__WrhN_{border-radius:50% 0 50% 0!important;margin:0 -6px -10px 0!important}.why-box{grid-template-columns:1fr!important;padding:4rem 8px!important}.customer-contact{padding:0 0 .4rem!important}.why-left{align-items:center;flex-direction:column-reverse}.why-footer>div{font-size:7vw}.story-left img{height:auto;max-width:23vw;width:100%}.story-wrapper-inner{display:grid;grid-template-areas:"story-head" "storyleft" " storyright ";grid-template-columns:1fr;grid-template-rows:10% auto auto;padding:30px 20px}.story-right{display:grid;grid-area:storyright;grid-template-columns:1fr;grid-template-rows:auto;justify-self:center;width:99%}.genesis-story{font-family:var(--font-1);font-size:calc(3vw + 10px);font-weight:600}}.container-x{--max-width__screen:100%;--max-width__laptops:1400px;--max-width__blogs:1100px;margin-inline:auto;width:min(var(--max-width__screen),100% - (var(--padding) * 2))}html:focus-within{scroll-behavior:smooth}@media (prefers-reduced-motion:media){html:focus-within{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;-webkit-transition-duration:.01ms!important;-o-transition-duration:.01ms!important;transition-duration:.01ms!important}}.display-1{color:var(--color-white);font-family:var(--font-1);font-size:var(--fs-d1);font-weight:var(--fw-medium);margin:0;padding:.3rem 0 1rem}.container-x label,.container-x p,.container-x span{color:var(--color-white);font-family:var(--font-3);font-size:var(--fs-regular);font-weight:var(--fw-regular)}@media screen and (max-width:600px){.container-x label,.container-x p,.container-x span{font-family:var(--font-1)}}.line{border-bottom:2px solid var(--color-black);width:100%}.cont{border-radius:45px}.main-cont{display:grid;gap:1rem;padding:2px 8px}@media (min-width:768px){.main-cont .m-cont-2{display:grid;gap:0 0;grid-template-areas:"sm-cont-21 sm-cont-22" "sm-cont-23 sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}@media (max-width:767px){.below-studio-hero{min-height:calc(50vh + 20px)!important}.xp-footer{font-size:1rem}.story-wrapper{height:130vh!important}.customer-says{padding:20px 9px 100px!important}.swiperx-wrapper{margin:unset!important;width:90vw!important}.contact-boxes-wrapper{grid-template-columns:1fr!important}.contact-image{width:50%!important}.contact-box .h4{max-width:90%!important}.contact-intro{font-size:calc(2vw + 10px)!important}.testimonial-image{height:calc(2vw + 49px)!important;transition:all .3s ease;width:calc(2vw + 49px)!important}.main-cont{overflow:hidden}.main-cont,.main-cont .cont{height:100vh}.sm-cont-21{grid-area:sm-cont-21;padding:3rem 1rem!important}.main-cont .cont{border-radius:2rem}}.main-cont .cont-category{border:1px solid var(--color-white);border-radius:100vw;padding:.2rem .8rem;width:fit-content}.main-cont p{color:var(--color-white);font-size:var(--fs-small);font-weight:var(--fw-medium)}.main-cont .m-cont-2{display:grid;gap:1rem;grid-template-areas:"sm-cont-21 sm-cont-22 sm-cont-23";grid-template-columns:1fr 1fr 1fr}@media only screen and (max-width:1600px){.main-cont .m-cont-2{display:grid;gap:0 0;grid-template-areas:"sm-cont-21 sm-cont-22" "sm-cont-23 sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}@media only screen and (max-width:992px){.main-cont .m-cont-2{display:grid;gap:0;grid-template-areas:"sm-cont-21" "sm-cont-22" "sm-cont-23";grid-template-columns:1fr;grid-template-rows:1fr}}.sm-cont-21{background:var(--color-white);display:flex;flex-direction:column;grid-area:sm-cont-21;justify-content:space-between;padding:3rem}.m-cont-2 a,.m-cont-2 h1,.m-cont-2 p{color:var(--color-black)}.m-cont-2 .cont-category{border-color:var(--color-black)}.sm-cont-21 .line{position:relative}.sm-cont-21 .line:after{background-color:var(--color-black);border-radius:100vw;content:"";height:12px;position:absolute;right:0;top:-6px;width:12px}.sm-cont-21__footer{align-items:center;display:grid;gap:1rem;grid-template-columns:50px 1fr;justify-content:center;padding-top:1.8rem}.ri-lightbulb-line{border-right:1px solid var(--color-black);color:var(--color-white);color:var(--color-black);display:grid;font-size:var(--fs-3);place-content:center}.campaign{align-items:flex-end;align-self:flex-end;display:flex;justify-content:space-between;padding:1rem 0;position:relative}.campaign-line{border-bottom:1px solid var(--color-black)}p.campaign-info.progress-value{font-size:var(--fs-3);font-weight:var(--fw-bold)}.progress{border:1px solid var(--color-black);border-radius:100vw;height:15px;overflow:hidden;position:relative;width:100%}.progress .color{background-color:var(--color-black);border-radius:15px;height:13px;left:0;position:absolute;top:0;transform-origin:left;width:0}@keyframes progress{0%{width:0}to{width:100%}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.why-workus{background-color:var(--color-black);border-radius:45px;display:grid;grid-template-columns:1fr;grid-template-rows:auto;margin:10px 5px;min-height:100vh}.why-workus-header{color:var(--color-bg);display:grid;display:flex;font-family:var(--font-3);height:fit-content;justify-content:center;padding:4rem 0;text-align:left}.why-box-wrapper{display:grid;justify-self:center;max-width:85vw}.why-box{border-bottom:.058vw solid var(--color-bg);border-top:.058vw solid var(--color-bg);color:var(--color-bg);display:grid;font-family:var(--font-1);grid-template-columns:repeat(2,1fr);height:auto;padding:4rem 30px}.why-left{display:flex;flex-wrap:nowrap;justify-content:space-around}.why-left svg{width:35px;fill:#fff;stroke:#fff;height:35px;margin-top:15px}.why-main{font-size:1.4rem}.why-right p{font-size:1.2rem}.why-footer{background:var(--color-bg);border-radius:45px;cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing;display:flex;margin:7px;min-height:31vw}.why-footer>div{margin:auto;width:85vw}.eye-wrapper{background-color:var(--color-white);border-radius:45px;cursor:grab;display:inline-flex;height:1em;justify-content:center;position:relative;width:124px}.why-footer-top{padding-bottom:20px}.why-footer-bottom,.why-footer-top{display:flex;justify-content:center}.why-footer-bottom{align-items:center;gap:20px}.why-box:last-of-type{border-bottom:none}.eye-el{background-color:var(--main-color);height:.6em;width:.6em}.circle-radius{border-radius:50%}.abs-center{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.pabs{position:absolute}.inline_block{display:inline-block}.eye-el-inner{background-color:#131313;height:.2em;width:.2em}.customer-says{background-color:var(--color-white);border-top-left-radius:45px;border-top-right-radius:45px;display:grid;grid-area:testimonials;grid-template-columns:1fr;grid-template-rows:20% 80%;margin:10px 5px 0;min-height:100vh;padding:20px 50px 100px;position:relative;row-gap:20px}.swiper-top{display:flex;justify-content:center}.swiper-header{display:grid;font-family:var(--font-3);font-size:var(--fs-1);height:fit-content;line-height:1.1;padding:3rem 0;position:relative;text-align:center}.swiper-header:before{border:3px solid #fff;border-radius:50%;bottom:-6px;height:15px;left:50%;transform:translatex(-50%);width:15px;z-index:9}.swiper-header:after,.swiper-header:before{background-color:var(--main-color);content:"";position:absolute}.swiper-header:after{bottom:0;height:2px;left:25%;right:25%}.swiperx-wrapper{display:grid;grid-template-areas:"before message after";grid-template-columns:auto 1fr auto;margin:auto;overflow:hidden;padding:30px 0;position:relative;width:70vw}.swiper-slide{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh}.message-wrapper{display:grid;grid-template-areas:"message" "user";grid-template-columns:1fr;grid-template-rows:auto;height:100%;position:relative}.message{font-family:var(--font-1);grid-area:message}.message,.user{color:var(--color-black)}.user{display:grid;font-family:var(--font-3);font-size:2rem;grid-area:user;text-align:center}.before-testimonial{grid-area:before}.after-testimonial,.before-testimonial{font-family:var(--font-1);font-size:11.5vw;line-height:7vw;width:12.5%}.after-testimonial{align-items:end;display:flex;grid-area:after;justify-items:end}.swiper{cursor:pointer;grid-area:message;height:fit-content;max-width:100vw;overflow:auto;width:100%}.testimonial-bottom{align-items:center;display:flex;font-size:2rem;font-weight:500;gap:20px;margin-top:35px}.testimonial-image{border-radius:50%;height:92px;overflow:hidden;width:92px}.testimonial-image img{height:auto;width:100%}.testimonial-credits{column-gap:20px;display:flex;flex-direction:column;font-family:var(--font-1);font-size:1.2rem}.clientel{background-color:var(--color-bg);display:grid;grid-template-areas:"clientel-head" "clientel-body";grid-template-columns:1fr;grid-template-rows:20% auto;height:fit-content;min-height:30vh;padding:75px 10px}.clientel-head{align-items:center;display:grid;grid-area:clientel-head;justify-content:center;position:relative}.clientel-head-inner{background-color:var(--main-color);border:1px solid #000;border-radius:20px;color:var(--color-black);display:inline-flex;font-size:16px;margin:0 0 20px;padding:5px 10px}.clientel-body{display:flex;grid-area:clientel-body;justify-content:space-evenly;margin:auto;width:100%}.partner-logo{display:flex;height:45px;position:relative;transition:all .5s cubic-bezier(.25,.46,.45,.94)}.partner-logo img{cursor:pointer;height:100%;width:auto}@media screen and (max-width:767px){.clientel-body{align-items:center;display:grid;gap:34px;grid-template-columns:1fr 1fr;justify-content:center;margin:auto}.partner-logo{column-gap:20px;display:flex;height:9vw!important;margin:auto;position:relative;width:auto}.clientel{padding:45px 10px}.clientel-body{padding:27px 0}}.vicstatelogo-small{height:70%!important;justify-self:center;margin:auto;width:auto}.vicstatelogo-large{height:80px!important;margin-top:-20%}.clientel-body{padding:68px 0}.customer-contact-wrap{background-color:var(--color-bg);display:grid;grid-template-areas:"testimonials" "now-contact";grid-template-columns:1fr;grid-template-rows:auto}.customer-contact{align-items:center;background-color:var(--color-forth);border-radius:45px;display:flex;flex-direction:column;grid-area:now-contact;margin:-50px 5px 10px;min-height:50vw;padding:0 80px 80px;z-index:2}.footer{border-top-left-radius:45px;border-top-right-radius:45px}.contact-intro{color:var(--color-bg);font-family:var(--font-3);font-size:var(--fs-1);margin:0 0 60px;max-width:900px;padding-top:4rem;text-align:center}.contact-boxes-wrapper{display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto;grid-gap:10px;gap:10px;padding:0 80px;width:100%}.contact-box{border-radius:30px;display:flex;transform:translateY(-10px)}.contact-box:first-child{background-color:#d9db4d;transition-delay:.05s}.contact-box:nth-child(2){background-color:#dcb688;transition-delay:.1s}.contact-box:nth-child(3){background-color:#bed2f5}.contact-box>a{color:var(--color-black);padding:30px;width:100%}.contact-box .h4{font-family:var(--font-1);font-size:1.7rem;font-weight:600;margin:2.2rem 0;max-width:220px;min-height:90px;text-align:center}.contact-image{aspect-ratio:1/1;border-radius:50%;margin:auto auto 60px;-webkit-mask-image:-webkit-radial-gradient(#fff,#000);overflow:hidden;position:relative;width:95%}.contact-image img{border:none;height:0;inset:0;margin:auto;max-height:100%;max-width:100%;min-height:100%;min-width:100%;object-fit:cover;width:0}.contact-image img,.image-wrap-box{box-sizing:border-box;display:block;padding:0;position:absolute}.image-wrap-box{background:none;border:0;bottom:0;height:auto;left:0;margin:0;opacity:1;overflow:hidden;right:0;top:0;width:auto}.Trake_tile_button{bottom:0;position:absolute;right:0}.Button_ArrowCont__WrhN_{background-color:var(--color-forth);border-radius:50% 0 0 0;margin:0 -10px -10px 0;padding:10px}.Button_Button__vVAZK{align-items:center;background:transparent;border:none;color:transparent;cursor:pointer;display:inline-flex;justify-content:center;outline:0;text-decoration:none}.Button_ArrowCont__WrhN_:focus,.Button_Button__vVAZK:focus,.Trake_tile_button:focus{outline:none}.Button_Button__vVAZK>span{align-items:center;display:flex;height:100%;transition:.15s;width:100%;z-index:1}.Button_Arrow__LawjV{align-items:center;background-color:var(--color-white);border:1px solid var(--color-white);border-radius:50%;color:var(--stick-black);display:flex;height:50px;justify-content:center;outline:none;transition:all .4s ease;width:50px}.Trake_tile_button:focus,.Trake_tile_button:hover{background:transparent;border:none;outline:none}.Button_Arrow__LawjV>svg{display:block;height:14px;transition:.3s;width:14px}.Button_Arrow__LawjV path{fill:none!important}.Button_ArrowCont__WrhN_ path{fill:var(--color-forth)}.Button_ArrowCont__WrhN_>svg:last-of-type{border:none;bottom:0;left:-13px;right:auto;top:auto}.Button_ArrowCont__WrhN_>svg{background:transparent;border:none;display:block;position:absolute;right:-1px;top:-18px;transform:rotate(180deg) scale(1.01);width:20px;shape-rendering:geometricPrecision}.blog-front-card:hover .Button_Arrow__LawjV{outline:none;transform:rotate(-45deg);transition:transform .6s ease}.blog_front_card:hover .Button_Arrow__LawjV>svg{transform:scale(1.2);transition:transform .3 ease}.Img_Img__73sGi,.contact-box{transition:all .4s ease}.contact-box:hover{transform:translateY(-25px)}.contact-box:hover .Img_Img__73sGi{transform:scale(1.1)}.contact-box:hover .Button_Arrow__LawjV{transform:rotate(-45deg)}@media (max-width:930px){.contact-boxes-wrapper{padding:0 20px}.customer-contact{padding:0 0 80px}}.partner-modal{background:rgba(0,0,0,.8);display:grid;height:100%;left:0;opacity:0;place-items:center;pointer-events:none;pointer-events:all;position:fixed;scale:0;top:0;transform:scale(1.03);width:100%;z-index:203}.partner-modal-inner{overflow:hidden;position:relative;width:95%}.partner-close{background:none;border:1px solid #000;border-radius:50%;color:#fff;cursor:pointer;display:grid;font-size:26px;height:40px;place-items:center;position:absolute;right:20px;top:35px;transition:transform .3s;width:40px;z-index:5}.partner-close svg{transform:scale(.8)}.partner-divide{display:flex;font-size:clamp(1rem,.886rem + .36vw,1.25rem);gap:10px;margin:20px auto;max-width:1200px;position:relative}.partner-right{background:var(--color-third);border-radius:30px;padding:50px;width:70%}.partner-pill{background-color:#fff;border:0;border-radius:20px;display:inline-flex;font-family:var(--font-3);font-size:1rem;margin:0 0 20px;padding:5px 10px}.inline-flex{align-items:center;display:inline-flex;justify-content:center}.viewbutton{border-radius:50% 0 0 0;margin:0 -10px -10px 0;padding:10px}.partner-intro{font-family:var(--font-1);font-size:1.2rem;margin-top:30px}.view-parnerbutton{align-items:center;color:#000;cursor:pointer;display:inline-flex;justify-content:center;margin:30px 0 0;outline:0;text-decoration:none}.partner-left{background-color:#fff;border-radius:30px;min-height:500px;overflow:hidden;width:30%}.partner-left,.partner-left-inner{align-items:center;display:flex;justify-content:center}.partner-left-inner{height:100%;max-height:80%;max-width:80%;width:100%}.partner-left-inner a{display:block;height:100%;width:100%}.partner-left-inner span{position:relative}.partner-left img{height:auto;max-width:100%;min-height:100%;object-fit:contain}.more-explanation{font-family:var(--font-1);font-size:1.2rem}.founder{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;padding:2rem 0}@media screen and (max-width:768px){.partner-divide{display:flex!important;flex-direction:column!important;overflow:auto!important}.partner-left{margin:auto!important;max-height:150px!important;min-height:120px!important;width:95%!important}.partner-left-inner{max-width:68%!important}.partner-right{margin:auto!important;padding:1rem!important;width:95%!important}.partner-right h3{font-size:1.3rem}.partner-pill{font-size:1rem!important;margin:0 0 1rem!important}.partner-intro{margin-top:1rem!important}.view-parnerbutton{margin:1.5rem 0 0!important}}.lineChild{overflow:hidden}@media screen and (max-width:425px){.swiper-header{padding:2rem 0!important}} \ No newline at end of file diff --git a/css/terms.css b/css/terms.css index 573933ae..1136c659 100644 --- a/css/terms.css +++ b/css/terms.css @@ -1 +1 @@ -html{overflow-y:scroll}.nav{bottom:auto;left:0;position:fixed!important;top:0;width:100vw;z-index:200}.all-background{background-color:var(--color-bg);bottom:0;display:grid;left:0;min-height:100svh;min-width:100vw;position:fixed;top:0;z-index:0}.footer{overflow:hidden;position:relative;z-index:2}.terms-hero{background-color:transparent;display:grid;min-height:100vh;padding:0 1.2rem;position:relative}.policy-header{align-items:center;display:flex;height:80vh;justify-content:center;min-height:30rem;position:relative;width:100%}.h-mega{font-family:inherit;font-size:7vw;font-weight:400;line-height:1.1;margin:0;overflow:hidden;padding:0}.policy-terms{display:grid;font-family:var(--font-1);font-weight:900;height:fit-content;min-height:50vh;padding:20px 1rem;position:relative}.col-grid{display:flex;flex-flow:column;gap:20px;width:100%}@media screen and (min-width:768px){.col-grid{grid-auto-columns:1fr;grid-template-columns:repeat(12,1fr);grid-column-gap:1.25em;grid-row-gap:16px;display:grid;grid-template-rows:auto}}.term-left{grid-area:span 1/span 3/span 1/span 3}.term-center{grid-area:span 1/span 2/span 1/span 2}.term-right{grid-area:span 1/span 6/span 1/span 6}.flex-left{align-items:flex-start}.flex-v{display:flex;flex-direction:column}.terms-links{color:var(--color-black);text-decoration:underline}.terms-links:hover{color:var(--main-color)}.terms-headers:not(:first-of-type){font-size:1.3rem;padding:30px 0}.terms-headers:first-of-type{font-size:1.4rem;padding-bottom:10px}.conte-inner{padding:5px 0}.terms-6v{font-size:6svw}#privacyPage .below-line,#termsPage .below-line{background-color:var(--below-line)} \ No newline at end of file +html{overflow-y:scroll}.nav{bottom:auto;left:0;position:fixed!important;top:0;width:100vw;z-index:200}.all-background{background-color:var(--color-bg);bottom:0;display:grid;left:0;min-height:100svh;min-width:100vw;position:fixed;top:0;z-index:0}.footer{overflow:hidden;position:relative;z-index:2}.terms-hero{background-color:transparent;display:grid;min-height:100vh;padding:0 1.2rem;position:relative}.policy-header{align-items:center;display:flex;height:80vh;justify-content:center;min-height:30rem;position:relative;width:100%}.h-mega{font-family:inherit;font-size:7vw;font-weight:400;line-height:1.1;margin:0;overflow:hidden;padding:0}.policy-terms{display:grid;font-family:var(--font-1);font-weight:900;height:fit-content;min-height:50vh;padding:20px 1rem;position:relative}.col-grid{display:flex;flex-flow:column;gap:20px;width:100%}@media screen and (min-width:768px){.col-grid{grid-auto-columns:1fr;grid-template-columns:repeat(12,1fr);grid-column-gap:1.25em;grid-row-gap:16px;display:grid;grid-template-rows:auto}}.term-left{grid-area:span 1/span 3/span 1/span 3}.term-center{grid-area:span 1/span 2/span 1/span 2}.term-right{grid-area:span 1/span 6/span 1/span 6}.flex-left{align-items:flex-start}.flex-v{display:flex;flex-direction:column}.terms-links{color:var(--color-black);text-decoration:underline}.terms-links:hover{color:var(--main-color)}.terms-headers:not(:first-of-type){font-size:1.3rem;padding:30px 0}.terms-headers:first-of-type{font-size:1.4rem;padding-bottom:10px}.conte-inner{padding:5px 0}.terms-6v{font-size:6vw}#privacyPage .below-line,#termsPage .below-line{background-color:var(--below-line)} \ No newline at end of file diff --git a/css/works.css b/css/works.css index 9a0e546c..11c0afe0 100644 --- a/css/works.css +++ b/css/works.css @@ -1 +1 @@ -html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}body{background-color:var(--color-black);color:var(--color-bg)}main{border-radius:12px;margin:4px 2px 0 4px;overflow:hidden;position:relative}.work-hero{background-color:var(--main-color);color:var(--color-black);display:grid;grid-template-areas:"..." "hero-title";grid-template-columns:1fr;grid-template-rows:repeat(2,1fr);min-height:70vh}.hero-title{font-size:calc(8vw + 10px);grid-area:hero-title;padding:25px}.work-section{background-color:var(--main-color);padding:0 25px}.work-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:0;position:relative}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--vh:5.7700000000000005px;--vhu:5.7700000000000005px}html,html a{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale;-ms-scroll-chaining:none;overscroll-behavior:none}@media screen and (min-width:768px){.work-wrapper:after{background:hsla(0,0%,5%,.25);content:"";left:50%;min-height:100%;position:absolute;top:0;width:1px}}::selection{background:transparent;color:inherit}.work-tile:nth-child(-n+2){border-top:1px solid hsla(0,0%,5%,.25)}.work-tile{border-bottom:1px solid hsla(0,0%,5%,.25);min-width:auto;padding-right:0;width:calc(50% - 15px)}@media screen and (max-width:1240px){.work-tile{max-width:620px;min-width:620px}}.work-tile{min-width:50vw;padding-bottom:2.2222222222vw;padding-top:2.6388888889vw;position:relative}.work-section .work-tile{border-bottom:1px solid hsla(0,0%,5%,.25);min-width:auto;padding-right:0;width:calc(50% - 15px)}button{background:none;border:none;color:inherit;padding:0}.work-tile .heading{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:4.5555555556vw;letter-spacing:-.1666666667vw;margin-bottom:.5555555556vw;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;color:var(--color-bg);font-family:var(--font-3);letter-spacing:-2.3px;white-space:nowrap}h1,h2,h3,h4,h5,h6{font-size:inherit}h1,h2,h3,h4,h5,h6,p{font-weight:400;margin:0;padding:0}@media screen and (max-width:1440px){.work-tile .heading span{font-size:11px;margin-left:11px;margin-top:10px}}.work-tile .heading span{font-family:GT Mono,sans-serif;font-size:.7638888889vw;letter-spacing:.03em;margin-left:.7638888889vw;margin-top:.6944444444vw}.work-tile .media-wrapper{border-radius:15px;margin-bottom:20px;overflow:hidden;position:relative;-webkit-transform:translateZ(0);transform:translateZ(0)}.work-tile .media:nth-child(2){height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transform:scale(1.15);transform:scale(1.15);-webkit-transition:transform .2s cubic-bezier(.445,.05,.55,.95),opacity .2s cubic-bezier(.445,.05,.55,.95);transition:transform .2s cubic-bezier(.445,.05,.55,.95),opacity .2s cubic-bezier(.445,.05,.55,.95);width:100%}.work-tile .media{aspect-ratio:1.57/1;height:auto;width:100%}img,svg,video{-o-object-fit:cover;object-fit:cover;width:100%}.view-work .tag,.view-work .tags,img,svg,video{display:-webkit-box;display:-ms-flexbox;display:flex}.view-work .tag,.view-work .tags{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.view-work .tags{gap:5px}@media screen and (max-width:1440px){.work-tile .tags{font-size:10px}}@media screen and (max-width:1152px){.work-tile .tags{gap:4px}}.work-tile .tags{color:#0e0e0e;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.7944444444vw;gap:.3472222222vw;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;white-space:nowrap}.work-tile .tags p{border:1px solid rgba(0,0,0,.8);border-radius:56px;font-family:var(--font-2),sans-serif;padding:.9722222222vw 1.5277777778vw}@media screen and (max-width:1440px){.view-work .tag{font-size:10px}}.view-work .tag{padding:0 22px;-webkit-box-pack:center;-ms-flex-pack:center;border:1px solid #000;border-radius:56px;font-family:NeueHaasDisplay-Med,sans-serif;font-size:.6944444444vw;height:2.7777777778vw;justify-content:center;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.reeler{align-items:center;background-color:var(--color-black);background:#000;height:80vh;min-height:50vh;overflow:hidden}.sw-partner-marquee{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;margin-top:52px;max-width:100vw;padding:0 16px}@media (min-width:768px){.sw-partner-marquee{margin-top:80px;padding:0 40px}}@media (min-width:1024px){.sw-partner-marquee{margin-top:100px;padding:0 60px}}@media (min-width:1200px){.sw-partner-marquee{margin-top:120px;padding:0 80px}}@media (min-width:1440px){.sw-partner-marquee{padding:0 120px}}@media (min-width:1440px) and (min-height:1000px){.sw-partner-marquee{margin-top:15vh}}.sw-partner-marquee-row{overflow:hidden}.sw-partner-marquee-row,.sw-partner-marquee-row-item{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.sw-partner-marquee-row-item{gap:4rem}.sw-partner-logo{-webkit-flex-shrink:0;-ms-flex-negative:0;display:inline-flex;flex-shrink:0;gap:5rem}@media (min-width:1024px){.sw-partner-logo{-webkit-transform:scale(.75);-moz-transform:scale(.75);-ms-transform:scale(.75);-o-transform:scale(.75);transform:scale(.75)}}@media (min-width:1200px){.sw-partner-logo{margin-right:70px;-webkit-transform:scale(.85);-moz-transform:scale(.85);-ms-transform:scale(.85);-o-transform:scale(.85);transform:scale(.85)}}@media (min-width:1440px){.sw-partner-logo{margin-right:95px;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}}.sw-partner-info{color:#fff;font-family:Poppins;font-size:12px;font-style:normal;font-weight:400;letter-spacing:.01em;line-height:18px;margin-bottom:55px;margin-top:10px;opacity:.3}@media (min-width:768px){.sw-partner-info{margin-bottom:90px;margin-top:20px}}@media (min-width:1024px){.sw-partner-info{margin-bottom:110px;margin-top:30px}}@media (min-width:1200px){.sw-partner-info{margin-bottom:135px;margin-top:35px}}@media (min-width:1440px){.sw-partner-info{margin-bottom:112px;margin-top:40px}}.sw-unique{margin-top:112px;position:relative}.display-video{border-radius:300px;height:160px;overflow:hidden;position:relative;transform:translateZ(0);width:200px}.display-video video{height:100%;left:0;object-fit:cover;position:absolute;right:0;top:0;width:100%}.display-expla{color:#fff;font-family:inherit;font-size:70px}.works-exit{background-color:var(--color-bg);display:grid;grid-template-areas:"lets-make" "..." "contact-button";grid-template-columns:1fr;grid-template-rows:auto;height:fit-content;min-height:100vh}.lets-make{color:var(--main-color);display:flex;flex-direction:column;padding:14px 2.62rem}.make-top{display:block;font-size:6.12vw;position:relative;rotate:none;scale:none;text-align:start;transform:translate(0);translate:none}.make-bottom{align-items:center;display:inherit;font-size:6.12vw;gap:30px}.logo-cue,.logo-cue.is-woman{background-image:url(../assets/images/woman+telephone+yellow-p-800.webp)}.logo-cue{background-position:0 0;background-repeat:no-repeat;background-size:contain;display:inline-block;height:6.125rem;width:16.0625rem}.contact-button-work{align-items:center;border-bottom:.058vw solid rgba(252,18,52,.6);border-top:.058vw solid rgba(252,18,52,.6);display:inline-flex;gap:20px;grid-area:contact-button;height:fit-content;padding:25px;position:relative}.contact-button-work img{height:6vw;width:auto}.contact-button-work:after{background:var(--main-color);bottom:0;color:var(--main-color);content:"";height:4px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:1.2s ease;width:100%}.contact-button-work:hover:after{transform:scaleX(1)}.rolling-text{display:inline-block;font-family:inherit;font-size:5vw;height:5vw;letter-spacing:2px;line-height:5vw;overflow:hidden;text-decoration:none;width:100%}.rolling-text,.rolling-text .block:last-child,.rolling-text .letter{color:var(--main-color)}.rolling-text .letter{display:inline-block;transition:transform .6s cubic-bezier(.76,0,.24,1)}.letter:first-child{transition-delay:0s}.letter:nth-child(2){transition-delay:15ms}.rolling-text.hover .letter{transform:translateY(-100%)}.media-wrapper{cursor:pointer}@media screen and (max-width:767px){main{margin:5px 4px}.work-section .work-tile{width:100%}.sw-partner-info{margin-left:auto;margin-right:auto;max-width:250px}.work-tile .tags{font-size:2.794444vw}.sw-partner-caption br{display:none}.display-expla{font-size:12vw}.display-video{height:23vw;width:30vw}.reeler{display:flex}.make-bottom,.make-top{font-size:var(--hc-xxxl)}.make-bottom{align-items:start;display:flex;flex-direction:column-reverse;gap:30px}.work-tile .heading{font-size:calc(2vw + 22px)}.work-tile .heading span{font-size:11px}.work-tile{padding-bottom:12.222222vw;padding-top:8.638889vw;position:relative}}.view-cursor{align-items:center;aspect-ratio:10/4;color:#000;display:grid;font-family:var(--font-2);font-size:.7rem;height:auto;justify-content:center;left:0;pointer-events:none;position:fixed;text-align:center;top:0;transform:translate(-50%,-50%) scale(0);width:6vw;z-index:1000}.view-cursor:after{background-color:var(--main-color);border-radius:100%;content:"";height:100%;left:0;position:absolute;top:0;transform:rotate(-15deg);width:100%;z-index:-1}.work-drawer{transform:translate(100%)}@media screen and (min-width:768px){.work-drawer .drawer-wrapper{width:650px!important}}.work-drawer .drawer-wrapper{background:#f8f8f8;height:100vh;max-width:800px;min-height:100%;overflow:hidden;overflow-y:auto;position:relative;width:80vw;z-index:2}.work-drawer{cursor:default;min-height:100%;position:fixed;z-index:201;-webkit-box-pack:end;-ms-flex-pack:end;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;right:0;top:0}.work-drawer #backdrop{background:rgba(0,0,0,.25);height:100%;pointer-events:all;position:absolute}@media screen and (max-width:1440px){.work-drawer #close{height:14px;width:15px}}@media screen and (max-width:1296px){.work-drawer #close{right:27px}}@media screen and (max-width:1400px){.work-drawer #close{top:35px}}.work-drawer #close{height:.9722222222vw;position:absolute;right:2.0833333333vw;top:2.5vw;width:auto;width:1.0416666667vw;z-index:3}.work-drawer .inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding-top:4.4444444444vw}@media screen and (max-width:1440px){.work-drawer .header-wrapper{margin-bottom:7px}}.work-drawer .header-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.4861111111vw}@media screen and (max-width:1440px){.work-drawer .heading{margin-left:-2px}}@media screen and (max-width:1080px){.work-drawer .heading{font-size:60px}}.work-drawer .heading{color:#0e0e0e;font-size:5.5555555556vw;letter-spacing:-.1666666667vw;margin-left:-.1388888889vw}@media screen and (max-width:1440px){.work-drawer .year{font-size:11px}}.work-drawer .year{color:#0e0e0e;font-family:GT Mono,sans-serif;font-size:.7638888889vw;letter-spacing:.03em;line-height:1;padding-left:10px;padding-top:15px}.work-drawer .copy-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;font-family:var(--font-1);font-weight:800;margin-bottom:4.1666666667vw}.work-link{color:var(--color-black);position:relative}.work-link:after{background-color:var(--color-black);bottom:0;content:"";height:2px;left:0;opacity:1;position:absolute;scale:1;transition:all .5s ease;width:100%}.work-link:hover:after{scale:0}.work-drawer .tile-wrapper{overflow:visible}.work-drawer .media-wrapper,.work-drawer .tiles{display:-webkit-box;display:-ms-flexbox;display:flex}.work-drawer .tiles{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.work-drawer .copy-wrapper,.work-drawer .header-wrapper,.work-drawer .tiles{padding-left:2.0833333333vw;padding-right:2.0833333333vw}.work-drawer .tile{background:var(--main-color);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:25.2083333333vw;padding-left:4.5833333333vw}.tiles .media-wrapper{border-radius:15px;margin-bottom:20px;overflow:hidden;position:relative;-webkit-transform:translateZ(0);transform:translateZ(0)}.projects-drawer{position:relative}#overlay{position:fixed;z-index:1002}#backdrop{align-items:center;background:rgba(0,0,0,.25);display:flex;height:100%;justify-content:center;left:0;pointer-events:all;position:fixed;scale:0;top:0;width:100%;z-index:3}@media screen and (max-width:768px){.work-drawer .tile p{font-size:var(--hc-sm)}.heading h1{font-size:var(--hc-xxl)}}.work-drawer .tile p{color:#0e0e0e;font-family:var(--font-3),sans-serif;font-size:4.1666666667vw;letter-spacing:-.03em;line-height:.9;-webkit-text-decoration-line:underline;text-decoration-line:underline} \ No newline at end of file +html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}body{background-color:var(--color-black);color:var(--color-bg)}main{border-radius:12px;margin:4px 2px 0 4px;overflow:hidden;position:relative}.work-hero{background-color:var(--main-color);color:var(--color-black);display:grid;grid-template-areas:"..." "hero-title";grid-template-columns:1fr;grid-template-rows:repeat(2,1fr);min-height:70vh}.hero-title{font-size:calc(8vw + 10px);grid-area:hero-title;padding:25px}.work-section{background-color:var(--main-color);padding:0 25px}.work-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:0;position:relative}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--vh:5.7700000000000005px;--vhu:5.7700000000000005px}html,html a{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale;-ms-scroll-chaining:none;overscroll-behavior:none}@media screen and (min-width:768px){.work-wrapper:after{background:hsla(0,0%,5%,.25);content:"";left:50%;min-height:100%;position:absolute;top:0;width:1px}}::selection{background:transparent;color:inherit}.work-tile:nth-child(-n+2){border-top:1px solid hsla(0,0%,5%,.25)}.work-tile{border-bottom:1px solid hsla(0,0%,5%,.25);min-width:auto;padding-right:0;width:calc(50% - 15px)}@media screen and (max-width:1240px){.work-tile{max-width:620px;min-width:620px}}.work-tile{min-width:50vw;padding-bottom:2.2222222222vw;padding-top:2.6388888889vw;position:relative}.work-section .work-tile{border-bottom:1px solid hsla(0,0%,5%,.25);min-width:auto;padding-right:0;width:calc(50% - 15px)}button{background:none;border:none;color:inherit;padding:0}.work-tile .heading{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:4.5555555556vw;letter-spacing:-.1666666667vw;margin-bottom:.5555555556vw;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;color:var(--color-bg);font-family:var(--font-3);letter-spacing:-2.3px;white-space:nowrap}h1,h2,h3,h4,h5,h6{font-size:inherit}h1,h2,h3,h4,h5,h6,p{font-weight:400;margin:0;padding:0}@media screen and (max-width:1440px){.work-tile .heading span{font-size:11px;margin-left:11px;margin-top:10px}}.work-tile .heading span{font-family:GT Mono,sans-serif;font-size:.7638888889vw;letter-spacing:.03em;margin-left:.7638888889vw;margin-top:.6944444444vw}.work-tile .media-wrapper{border-radius:15px;margin-bottom:20px;overflow:hidden;position:relative;-webkit-transform:translateZ(0);transform:translateZ(0)}.work-tile .media:nth-child(2){height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transform:scale(1.15);transform:scale(1.15);-webkit-transition:transform .2s cubic-bezier(.445,.05,.55,.95),opacity .2s cubic-bezier(.445,.05,.55,.95);transition:transform .2s cubic-bezier(.445,.05,.55,.95),opacity .2s cubic-bezier(.445,.05,.55,.95);width:100%}.work-tile .media{aspect-ratio:1.57/1;height:auto;width:100%}img,svg,video{-o-object-fit:cover;object-fit:cover;width:100%}.view-work .tag,.view-work .tags,img,svg,video{display:-webkit-box;display:-ms-flexbox;display:flex}.view-work .tag,.view-work .tags{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.view-work .tags{gap:5px}@media screen and (max-width:1440px){.work-tile .tags{font-size:10px}}@media screen and (max-width:1152px){.work-tile .tags{gap:4px}}.work-tile .tags{color:#0e0e0e;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.7944444444vw;gap:.3472222222vw;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;white-space:nowrap}.work-tile .tags p{border:1px solid rgba(0,0,0,.8);border-radius:56px;font-family:var(--font-2),sans-serif;padding:.9722222222vw 1.5277777778vw}@media screen and (max-width:1440px){.view-work .tag{font-size:10px}}.view-work .tag{padding:0 22px;-webkit-box-pack:center;-ms-flex-pack:center;border:1px solid #000;border-radius:56px;font-family:NeueHaasDisplay-Med,sans-serif;font-size:.6944444444vw;height:2.7777777778vw;justify-content:center;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.reeler{align-items:center;background-color:var(--color-black);background:#000;height:80vh;min-height:50vh;overflow:hidden}.sw-partner-marquee{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;margin-top:52px;max-width:100vw;padding:0 16px}@media (min-width:768px){.sw-partner-marquee{margin-top:80px;padding:0 40px}}@media (min-width:1024px){.sw-partner-marquee{margin-top:100px;padding:0 60px}}@media (min-width:1200px){.sw-partner-marquee{margin-top:120px;padding:0 80px}}@media (min-width:1440px){.sw-partner-marquee{padding:0 120px}}@media (min-width:1440px) and (min-height:1000px){.sw-partner-marquee{margin-top:15vh}}.sw-partner-marquee-row{overflow:hidden}.sw-partner-marquee-row,.sw-partner-marquee-row-item{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.sw-partner-marquee-row-item{gap:4rem}.sw-partner-logo{-webkit-flex-shrink:0;-ms-flex-negative:0;display:inline-flex;flex-shrink:0;gap:5rem}@media (min-width:1024px){.sw-partner-logo{-webkit-transform:scale(.75);-moz-transform:scale(.75);-ms-transform:scale(.75);-o-transform:scale(.75);transform:scale(.75)}}@media (min-width:1200px){.sw-partner-logo{margin-right:70px;-webkit-transform:scale(.85);-moz-transform:scale(.85);-ms-transform:scale(.85);-o-transform:scale(.85);transform:scale(.85)}}@media (min-width:1440px){.sw-partner-logo{margin-right:95px;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}}.sw-partner-info{color:#fff;font-family:Poppins;font-size:12px;font-style:normal;font-weight:400;letter-spacing:.01em;line-height:18px;margin-bottom:55px;margin-top:10px;opacity:.3}@media (min-width:768px){.sw-partner-info{margin-bottom:90px;margin-top:20px}}@media (min-width:1024px){.sw-partner-info{margin-bottom:110px;margin-top:30px}}@media (min-width:1200px){.sw-partner-info{margin-bottom:135px;margin-top:35px}}@media (min-width:1440px){.sw-partner-info{margin-bottom:112px;margin-top:40px}}.sw-unique{margin-top:112px;position:relative}.display-video{border-radius:300px;height:160px;overflow:hidden;position:relative;transform:translateZ(0);width:200px}.display-video video{height:100%;left:0;object-fit:cover;position:absolute;right:0;top:0;width:100%}.display-expla{color:#fff;font-family:inherit;font-size:70px}.works-exit{background-color:var(--color-bg);display:grid;grid-template-areas:"lets-make" "..." "contact-button";grid-template-columns:1fr;grid-template-rows:auto;height:fit-content;min-height:100vh}.lets-make{color:var(--main-color);display:flex;flex-direction:column;padding:14px 2.62rem}.make-top{display:block;font-size:6.12vw;position:relative;rotate:none;scale:none;text-align:start;transform:translate(0);translate:none}.make-bottom{align-items:center;display:inherit;font-size:6.12vw;gap:30px}.logo-cue,.logo-cue.is-woman{background-image:url(../assets/images/woman+telephone+yellow-p-800.webp)}.logo-cue{background-position:0 0;background-repeat:no-repeat;background-size:contain;display:inline-block;height:6.125rem;width:16.0625rem}.contact-button-work{align-items:center;border-bottom:.058vw solid rgba(252,18,52,.6);border-top:.058vw solid rgba(252,18,52,.6);display:inline-flex;gap:20px;grid-area:contact-button;height:fit-content;padding:25px;position:relative}.contact-button-work img{height:6vw;width:auto}.contact-button-work:after{background:var(--main-color);bottom:0;color:var(--main-color);content:"";height:4px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:1.2s ease;width:100%}.contact-button-work:hover:after{transform:scaleX(1)}.rolling-text{display:inline-block;font-family:inherit;font-size:5vw;height:5vw;letter-spacing:2px;line-height:5vw;overflow:hidden;text-decoration:none;width:100%}.rolling-text,.rolling-text .block:last-child,.rolling-text .letter{color:var(--main-color)}.rolling-text .letter{display:inline-block;transition:transform .6s cubic-bezier(.76,0,.24,1)}.letter:first-child{transition-delay:0s}.letter:nth-child(2){transition-delay:15ms}.rolling-text.hover .letter{transform:translateY(-100%)}.media-wrapper{cursor:pointer}@media screen and (max-width:767px){main{margin:5px 4px}.work-section .work-tile{width:100%}.sw-partner-info{margin-left:auto;margin-right:auto;max-width:250px}.work-tile .tag{font-size:2.794444vw}.sw-partner-caption br{display:none}.display-expla{font-size:12vw}.display-video{height:23vw;width:30vw}.reeler{display:flex}.make-bottom,.make-top{font-size:var(--hc-xxxl)}.make-bottom{align-items:start;display:flex;flex-direction:column-reverse;gap:30px}.work-tile .heading{font-size:calc(2vw + 22px)}.work-tile .heading span{font-size:11px}.work-tile{padding-bottom:12.222222vw;padding-top:8.638889vw;position:relative}}.view-cursor{align-items:center;aspect-ratio:10/4;color:#000;display:grid;font-family:var(--font-2);font-size:.7rem;height:auto;justify-content:center;left:0;pointer-events:none;position:fixed;text-align:center;top:0;transform:translate(-50%,-50%) scale(0);width:6vw;z-index:1000}.view-cursor:after{background-color:var(--main-color);border-radius:100%;content:"";height:100%;left:0;position:absolute;top:0;transform:rotate(-15deg);width:100%;z-index:-1}.work-drawer{transform:translate(100%)}@media screen and (min-width:768px){.work-drawer .drawer-wrapper{width:650px!important}}.work-drawer .drawer-wrapper{background:#f8f8f8;height:100vh;max-width:800px;min-height:100%;overflow:hidden;overflow-y:auto;position:relative;width:80vw;z-index:2}.work-drawer{cursor:default;min-height:100%;position:fixed;z-index:201;-webkit-box-pack:end;-ms-flex-pack:end;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;right:0;top:0}.work-drawer #backdrop{background:rgba(0,0,0,.25);height:100%;pointer-events:all;position:absolute}@media screen and (max-width:1440px){.work-drawer #close{height:14px;width:15px}}@media screen and (max-width:1296px){.work-drawer #close{right:27px}}@media screen and (max-width:1400px){.work-drawer #close{top:35px}}.work-drawer #close{height:.9722222222vw;position:absolute;right:2.0833333333vw;top:2.5vw;width:auto;width:1.0416666667vw;z-index:3}.work-drawer .inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding-top:4.4444444444vw}@media screen and (max-width:1440px){.work-drawer .header-wrapper{margin-bottom:7px}}.work-drawer .header-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.4861111111vw}@media screen and (max-width:1440px){.work-drawer .heading{margin-left:-2px}}@media screen and (max-width:1080px){.work-drawer .heading{font-size:60px}}.work-drawer .heading{color:#0e0e0e;font-size:5.5555555556vw;letter-spacing:-.1666666667vw;margin-left:-.1388888889vw}@media screen and (max-width:1440px){.work-drawer .year{font-size:11px}}.work-drawer .year{color:#0e0e0e;font-family:GT Mono,sans-serif;font-size:.7638888889vw;letter-spacing:.03em;line-height:1;padding-left:10px;padding-top:15px}.work-drawer .copy-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;font-family:var(--font-1);font-weight:800;margin-bottom:4.1666666667vw}.work-link{color:var(--color-black);position:relative}.work-link:after{background-color:var(--color-black);bottom:0;content:"";height:2px;left:0;opacity:1;position:absolute;scale:1;transition:all .5s ease;width:100%}.work-link:hover:after{scale:0}.work-drawer .tile-wrapper{overflow:visible}.work-drawer .media-wrapper,.work-drawer .tiles{display:-webkit-box;display:-ms-flexbox;display:flex}.work-drawer .tiles{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.work-drawer .copy-wrapper,.work-drawer .header-wrapper,.work-drawer .tiles{padding-left:2.0833333333vw;padding-right:2.0833333333vw}.work-drawer .tile{background:var(--main-color);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:25.2083333333vw;padding-left:4.5833333333vw}.tiles .media-wrapper{border-radius:15px;margin-bottom:20px;overflow:hidden;position:relative;-webkit-transform:translateZ(0);transform:translateZ(0)}.projects-drawer{position:relative}#overlay{position:fixed;z-index:1002}#backdrop{align-items:center;background:rgba(0,0,0,.25);display:flex;height:100%;justify-content:center;left:0;pointer-events:all;position:fixed;scale:0;top:0;width:100%;z-index:3}@media screen and (max-width:768px){.work-drawer .tile p{font-size:var(--hc-sm)}.heading h1{font-size:var(--hc-xxl)}}.work-drawer .tile p{color:#0e0e0e;font-family:var(--font-3),sans-serif;font-size:4.1666666667vw;letter-spacing:-.03em;line-height:.9;-webkit-text-decoration-line:underline;text-decoration-line:underline} \ No newline at end of file diff --git a/includes/project-data.json b/includes/project-data.json index 163b870b..018575b1 100644 --- a/includes/project-data.json +++ b/includes/project-data.json @@ -3,10 +3,10 @@ "id": "lumina", "aim": " This project entailed developing a robust design system and refining digital touchpoints, ensuring a seamless user experience across their app ecosystem with a design partner capable of adapting to their continuously evolving requirements.", "year": "2018", - "tasks": "UI DESIGN, RE-BRANDING", + "task": "UI DESIGN, RE-BRANDING", "title": "Lumina", - "media": " assets/images/works/lumina/lumina-mockall-low.webp?auto=compress,format || assets/images/works/lumina/lumina-packaging-mid.webp?auto=compress,format || assets/images/works/lumina/lumina-apply.webp", - "mediaLarge": "assets/images/works/lumina/lumina-cover.webp || assets/images/works/lumina/lumina-packaging-mid.webp || assets/images/works/lumina/lumina-apply.webp || assets/images/works/lumina/lumina-mockall-high.webp", + "media": "assets/images/works/lumina/lumina-cover.webp || assets/images/works/lumina-web/smoothskin.webp || assets/images/works/lumina-web/shopdsign1.webp || assets/images/works/lumina-web/lumina-footer.webp || assets/images/works/lumina-web/dddddddddd.webp || assets/images/works/lumina-web/smallest-mock.webp || assets/images/works/lumina-web/lumina-grow-small.webp", + "mediaLarge": "assets/images/works/lumina/lumina-cover.webp || assets/images/works/lumina-web/smoothskin.webp || assets/images/works/lumina-web/shopdsign1.webp || assets/images/works/lumina-web/lumina-grow1.webp || assets/images/works/lumina-web/dddddddddd.webp || assets/images/works/lumina-web/small-mock.webp || assets/images/works/lumina-web/c060b181d5fe51.webp", "client": "Lumina Skincare", "content": "Skincare on a mission of empathy and self-discovery.", "solution": " Throughout our partnership, As the developer responsible for designing Lumina's product branding and website, I addressed these challenges by implementing a comprehensive solution. Through extensive market research and collaboration with Lumina's team, I developed a cohesive brand identity that resonated with the target audience and differentiated Lumina from competitors. This involved creating visually appealing packaging designs that conveyed the premium quality and efficacy of Lumina's skincare products.", @@ -61,7 +61,7 @@ "title": "Robin-golf", "aim":"The Robin Golf website design was a strategic blend of branding, UX/UI design, development optimization, and customer engagement strategies. From its inception through ongoing improvements, the website serves as a testament to the power of thoughtful design in enhancing brand perception and driving business outcomes.", - "solution":"Initial Design Phase
Brand Identity and Messaging : The website emphasizes Robin Golf's commitment to providing high-quality golf equipment accessible to a wide range of players. It positions Robin Golf as a brand that combines affordability with performance, appealing to both professionals and beginners

Visual Appeal and User Experience (UX): The design focuses on creating a visually appealing and intuitive interface. This includes responsive design elements to ensure the website is accessible across various devices, enhancing the overall user experience.

Development and Optimization

Headless Architecture: Initially, the website was built with a headless architecture, separating the front-end presentation layer from the back-end content management system (CMS). This approach allows for greater flexibility and scalability but requires careful integration with the CMS for ease of content updates.

Enhancements and Integrations: To address challenges with content updates and improve the website's effectiveness, Future Holidays refined the headless architecture. They introduced helpful apps and integrated Google Analytics to track user behavior and optimize conversion rates. Additionally, they implemented email capture lightboxes and automated product restock flows to boost sales", + "solution":"Initial Design Phase:

Brand Identity and Messaging : The website emphasizes Robin Golf's commitment to providing high-quality golf equipment accessible to a wide range of players. It positions Robin Golf as a brand that combines affordability with performance, appealing to both professionals and beginners

Visual Appeal and User Experience (UX): The design focuses on creating a visually appealing and intuitive interface. This includes responsive design elements to ensure the website is accessible across various devices, enhancing the overall user experience.

Development and Optimization

Headless Architecture: Initially, the website was built with a headless architecture, separating the front-end presentation layer from the back-end content management system (CMS). This approach allows for greater flexibility and scalability but requires careful integration with the CMS for ease of content updates.

Enhancements and Integrations: To address challenges with content updates and improve the website's effectiveness, Future Holidays refined the headless architecture. They introduced helpful apps and integrated Google Analytics to track user behavior and optimize conversion rates. Additionally, they implemented email capture lightboxes and automated product restock flows to boost sales", "media": "assets/images/works/golfer/6dac42a8-b10a-425d-9c10-d96fc9a2.webp || assets/images/works/golfer/robin-golf-logo-animation.mp4 || assets/images/works/golfer/aa844126-d9f4-4b61-8846-2fbc8920.webp || assets/images/works/golfer/robin-hero.png || assets/images/works/golfer/robin-child.webp || assets/images/works/golfer/robingolf-cart.avif", "mediaLarge": "assets/images/works/golfer/6dac42a8-b10a-425d-9c10-d96fc9a2.webp || assets/images/works/golfer/robin-golf-logo-animation.mp4 || assets/images/works/golfer/aa844126-d9f4-4b61-8846-2fbc8920.webp || assets/images/works/golfer/robin-hero.png || assets/images/works/golfer/robin-child.webp || assets/images/works/golfer/robingolf-cart.avif", @@ -74,12 +74,12 @@ "year": "2021", "title": "spoiled-child", "aim": "Personalization was a central theme, emphasizing the importance of catering to individual needs and preferences. The integration of the Spoiled Brain AI for personalized product recommendations is a significant feature, demonstrating the use of advanced technology to enhance user engagement and satisfaction", - "media": "assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.webp || assets/videos/spoiled-child.webm || assets/images/works/general/e49b10f2-fefd-4b83-9430-d6ea4857.webp || assets/images/works/spoiled-child/spoiledchild.com.webp || assets/images/works/spoiled-child/whospoiled.webp", - "mediaLarge": "assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.webp || assets/videos/spoiled-child.webm || assets/images/works/general/e49b10f2-fefd-4b83-9430-d6ea4857.webp || assets/images/works/spoiled-child/spoiledchild.com.webp || assets/images/works/spoiled-child/whospoiled.webp", + "media": "assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.avif || assets/videos/spoiled-child.webm || assets/images/works/general/e49b10f2-fefd-4b83-9430-d6ea4857.webp || assets/images/works/spoiled-child/spoiledchild.com.webp || assets/images/works/spoiled-child/whospoiled.webp", + "mediaLarge": "assets/images/works/general/3c498d10-387e-412b-87dd-2092ee9e.avif || assets/videos/spoiled-child.webm || assets/images/works/general/e49b10f2-fefd-4b83-9430-d6ea4857.webp || assets/images/works/spoiled-child/spoiledchild.com.webp || assets/images/works/spoiled-child/whospoiled.webp", "content": "Make your skin age inappropriate. ", "solution":"The project began with setting a collaborative creative direction. This involves understanding the brand's vision, values, and target audience to ensure the design aligns with these elements. Collaborating closely with the client allows for a shared understanding of the desired outcome, leading to a more cohesive final product.

A crucial aspect of the design process was defining product categories and creating detailed pages for each product. These pages were designed to immerse users in a colorful capsule-driven world, enhancing the shopping experience through visual appeal and thematic consistency

The website's content strategy prioritizes community involvement, showcasing User-Generated Content (UGC) to demonstrate product usage and effectiveness. This approach not only builds trust with potential customers but also fosters a sense of community among existing ones

The visual design and art direction were tailored to reflect the brand's unique personality, described as confident, tongue-in-cheek, and impactful yet simple. This approach ensures that the website stands out in the crowded beauty space, attracting attention and resonating with the target audience.

The eCommerce platform used for Spoiled Child is custom, highlighting the need for a tailored solution that meets the specific requirements of the brand and its online presence. This customization includes features such as personalized product recommendations, secure payment processing, and efficient order management", - "previewColor": "#9B41FF", - "previewImage": "assets/images/works/general/1.jpg" + "previewColor": "transparent", + "previewImage": "assets/images/works/spoiled-child/hair-min_1.avif" }, { "id": "jstimler", diff --git a/index.html b/index.html index f97fe84f..252fde27 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + Hypercritical ✦ Studio \ No newline at end of file + design image" class="lazyload">

Through intuitive data structures and efficient server-side logic, we pave the way for applications that not only meet current needs but are adaptable to future challenges.

Backend Design
web security

We provide a comprehensive website overhaul, implementing advanced security features and SSL encryption.

Web Security
WORKING
WORLDWIDE
WHY CHOOSE US
✽ Brand-focused partner?
We work with brand leaders to build motion identities, systems, and applications that deepen audience relationships, strengthen brand affinity, and drive long-term growth.
✽ Approach
Our team draws on decades of experience, turning complex creative challenges into collaborative brand partnerships. We integrate with your team to learn your business, adopt your brand, and create motion identities, systems, and applications that transform how you communicate in today’s digital environment.
✽ Seamless experience
You bring the curiosity and drive, we bring the projects you’re proud to be a part of—from ambitious startups to any advanced field.We adapt to your needs with ease, enabling efficient workflows, and providing high-touch, high-quality partnerships for every client we work with.
✽ Innovative Design Solutions
We specialize in creating unique, cutting-edge designs that stand out in the digital landscape. Our innovative approach ensures your brand's identity is distinctively represented online.
✽ Timely Delivery
Hypercritical understand the importance of meeting deadlines in the fast-paced digital world. Our commitment to timely delivery ensures your project is completed on time, allowing you to launch your website with confidence and on schedule. 👋.
FEATURED WORK
Image 2
Image 2
All Work
get in touch
get in touch
Socials and contact

Get in Touch

\ No newline at end of file diff --git a/js/main/index.js b/js/main/index.js index 3e0c4c86..efc5bd4a 100644 --- a/js/main/index.js +++ b/js/main/index.js @@ -1 +1 @@ -import MouseFollower from"mouse-follower";import{initializeApp}from"firebase/app";import{getDatabase,ref,push,set}from"firebase/database";import lozad from"lozad";import{v4 as uuidv4}from"uuid";let select=e=>document.querySelector(e),selectAll=e=>document.querySelectorAll(e);document.addEventListener("DOMContentLoaded",(function(){lozad(".lozad",{rootMargin:"100px 0px",loaded:function(e){}}).observe()})),"serviceWorker"in navigator&&window.addEventListener("load",(()=>{navigator.serviceWorker.register("hypercritical-worker.js").catch((e=>console.log("Error:",e)))}));let midmoon=select(".mid-moon"),menuclose=select(".action--close"),menuopen=select(".action--menuUzi");function open(){midmoon.classList.add("mid-moon--light"),midmoon.classList.remove("mid-moon--dark")}function close(){midmoon.classList.add("mid-moon--dark"),midmoon.classList.remove("mid-moon--light")}function assignLinks(e){for(const t in e)if(e.hasOwnProperty(t)){selectAll(t).forEach((o=>{o?o.href=e[t]:console.error(`Elements matching selector ${t} not found.`)}))}}function assignExp(e){for(const t in e)if(e.hasOwnProperty(t)){selectAll(t).forEach((o=>{o?o.innerHTML=e[t]:console.error(`Elements matching selector ${t} not found.`)}))}}function smoother(){ScrollSmoother.create({smooth:1,effects:!0,smoothTouch:.1})}menuopen.addEventListener("click",open),menuclose.addEventListener("click",close),new Promise(((e,t)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config.json").then((e=>e.json())).then((t=>{assignLinks(t),e()})).catch((e=>{console.error("Error loading config:",e),t(e)}))}))})).then((()=>{console.log("%c Greetings from Hypercritical","color:white;background:#c389e1; font-size: 26px;font-family:sans-serif")})).catch((e=>{console.error("Failed to load configuration or assign links:",e)})),new Promise(((e,t)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config-data.json").then((e=>e.json())).then((t=>{assignExp(t),e()})).catch((e=>{console.error("Error loading config:",e),t(e)}))}))})).then((()=>{})).catch((e=>{console.error("Failed to load configuration or assign data:",e)})),assignExp(),document.addEventListener("DOMContentLoaded",(()=>{let e=select(".menuUzi__item-link"),t=e.querySelector(".contact-emoji"),o=gsap.timeline();e.addEventListener("mouseover",(()=>{o.to(t,{duration:1,rotation:-360,repeat:-1,ease:"linear"})})),e.addEventListener("mouseout",(()=>{o.kill()}))})),gsap.registerPlugin(ScrollTrigger,ScrollSmoother),window.innerWidth>767&&smoother(),window.addEventListener("resize",smoother),gsap.registerPlugin(ScrollTrigger),gsap.registerPlugin(ScrollToPlugin),gsap.registerPlugin(SplitText);const herolargelogo=select(".hero-largelogo");let herotext=new SplitText(herolargelogo,{type:"words",wordsClass:"hero-words"});const splitchars=selectAll(".split-chars");splitchars.forEach((e=>{new SplitText(e,{type:"chars",charsClass:"otherchars"})}));let herowords=selectAll(".hero-words"),heroSeparator=select(".below-line"),heroMedia=select(".parallax-hero"),heroimageWrapper=select(".hero-image");const showHero=()=>{gsap.timeline({defaults:{ease:"expo.out",delay:.5}}).addLabel("start").fromTo(heroSeparator,{width:0},{duration:1.75,width:"100%",stagger:.095},"start").fromTo(herowords,{y:"110%"},{delay:0,duration:2.3,y:"0",stagger:.17,ease:"expo.inOut"},"start+=0.28").fromTo(heroimageWrapper,{width:0},{width:"100%",duration:1.5,ease:"expo.inOut",transformOrigin:"50% 50% 0"},"start+=0.7")};function initParallax(){selectAll(".slide").forEach(((e,t)=>{let o=e.querySelector(".parallax-image");function r(){gsap.fromTo(o,{y:innerWidth>767?"-60vh":"-30vh"},{y:innerWidth>767?"60vh":"30vh",scrollTrigger:{trigger:e,scrub:!0,start:"top bottom",end:"bottom top",markers:!1},ease:"none"})}r(),window.addEventListener("resize",r)}))}function scrollTop(){gsap.to(window,{duration:2,scrollTo:{y:"nav"},ease:"power2.inOut"})}function lineTimeline(e){const t=gsap.timeline({defaults:{duration:3,ease:"power3.out"}});return t.fromTo(e,{scaleX:0,opacity:0,transformOrigin:"left left"},{scaleX:1,opacity:1}),t}document.addEventListener("DOMContentLoaded",(function(){showHero(),initParallax(),setTimeout((()=>{scrollTop()}),3e3)})),selectAll("[line-trigger]").forEach((function(e){const t=e.getAttribute("line-trigger"),o=lineTimeline(e);ScrollTrigger.create({trigger:t,start:"top 92%",animation:o,onEnter:()=>o.play(),onLeaveBack:()=>o.reverse({duration:6.5})})})),document.addEventListener("DOMContentLoaded",(function(){let e=select("#toTop");function t(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}t(),window.addEventListener("scroll",t),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".hero-main"},ease:e=>Math.min(1,1.001-Math.pow(2,-10*e))})}))})),document.addEventListener("DOMContentLoaded",(function(){function e(){if(innerWidth>767){new MouseFollower}}e(),window.addEventListener("res",e)})),document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(".col__content-txt").forEach((e=>{const t=e.querySelector(".details-content"),o=e.querySelector("summary");gsap.set(t,{height:0,overflow:"hidden"}),o.addEventListener("click",(function(o){e.hasAttribute("open")?gsap.to(t,{height:0,duration:.5,onComplete:()=>{e.removeAttribute("open")}}):function(){const o=t.scrollHeight;e.setAttribute("open",""),gsap.fromTo(t,{height:0},{height:o,duration:.5})}(),o.preventDefault()}))}));const e=document.querySelectorAll("details");e.forEach((t=>{t.addEventListener("click",(o=>{e.forEach((e=>{e!=t&&e.removeAttribute("open")}))}))}))}));let elephant=select(".c-elephant_himself"),elephant_wrapper=select(".elephant-boundary");const elephantcursor=new MouseFollower({el:elephant,container:elephant_wrapper,speed:22.5,hideTimeout:3e4});let peanutWrapper=select(".ourservices");const peanutcursor=new MouseFollower;peanutWrapper.addEventListener("mouseenter",(()=>{peanutcursor.setImg("./../../assets/images/peanut.webp")})),peanutWrapper.addEventListener("mouseleave",(()=>{peanutcursor.removeImg()})),document.addEventListener("DOMContentLoaded",(()=>{gsap.registerPlugin(ScrollTrigger);const e=gsap.utils.toArray(".white-section");var t=select(".top-arrow-wrapper"),o=select(".top-arrow-path"),r=select(".menu-name"),n=selectAll(".menu-dot-line");function a(){o.style.stroke="var(--color-bg)",t.style.fill="var(--color-black)",n.forEach((e=>{e.style.background="var(--color-black)"})),r.style.color="var(--color-black)"}function i(){o.style.stroke="var(--color-black)",t.style.fill="var(--color-bg)",n.forEach((e=>{e.style.background="var(--color-bg)"})),r.style.color="var(--color-bg)"}e.forEach(((e,t)=>{gsap.timeline({scrollTrigger:{trigger:e,id:t+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,onEnter:()=>i(),onLeave:()=>a(),onEnterBack:()=>i(),onLeaveBack:()=>a()}})}))}));import{Item}from"./code-anime/item";[...selectAll(".grid-itemz > .grid__item-img")].forEach((e=>new Item(e)));let worldvideoWrapper=select(".global-video"),worldvideo=select("#video-background");gsap.registerPlugin(ScrollTrigger);const animateVideo=gsap.timeline({scrollTrigger:{trigger:worldvideoWrapper,start:"top bottom",end:"top top",scrub:!0,markers:!1,toggleActions:"play none none reverse"}});animateVideo.fromTo(worldvideo,{scaleX:.9,borderRadius:"45px"},{scaleX:1,borderRadius:"0px"});const playvideotl=gsap.timeline({scrollTrigger:{trigger:worldvideo,start:"top bottom",end:"bottom top",scrub:!0,onEnter:()=>{worldvideo.paused&&worldvideo.play().catch((e=>{"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeave:()=>{worldvideo.paused||worldvideo.pause()},onEnterBack:()=>{worldvideo.paused&&worldvideo.play().catch((e=>{"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeaveBack:()=>{worldvideo.paused||worldvideo.pause()}}});var playPromise=worldvideo.play();function showDialog(){gsap.to("#overlay",{duration:.5,opacity:1,scale:1,onComplete:()=>{gsap.to("#dialog",{duration:.5,scale:1,opacity:1,ease:"bounce"})}})}function hideDialog(){gsap.to("#dialog",{duration:.5,scale:0,opacity:0,onComplete:()=>{gsap.to("#overlay",{duration:.5,opacity:0,scale:0})}})}void 0!==playPromise&&playPromise.then((e=>{})).catch((e=>{}));const firebaseConfig={apiKey:process.env.FIREBASE_API_KEY,authDomain:process.env.FIREBASE_AUTH_DOMAIN,databaseURL:process.env.FIREBASE_DATABASE_URL,projectId:process.env.FIREBASE_PROJECT_ID,storageBucket:process.env.FIREBASE_STORAGE_BUCKET,messagingSenderId:process.env.FIREBASE_MESSAGING_SENDER_ID,appId:process.env.FIREBASE_APP_ID,measurementId:process.env.FIREBASE_MEASUREMENT_ID},app=initializeApp(firebaseConfig),database=getDatabase(app);function generateInvoiceNumber(){return`INV-${uuidv4().substring(0,6)}`}document.getElementById("consultationForm").addEventListener("submit",(function(e){e.preventDefault();var t=document.getElementById("message").value,o=document.getElementById("email").value,r=document.getElementById("yourname").value;const n=generateInvoiceNumber();var a="";document.getElementById("Web-Design").checked&&(a+="Web Design, "),document.getElementById("SEO").checked&&(a+="SEO, "),document.getElementById("Development").checked&&(a+="Development, "),document.getElementById("Other").checked&&(a+="Other, "),a=a.slice(0,-2);for(var i="",s=document.getElementsByName("priceGroup"),l=0;l{e.target.parentNode.querySelector(".checkbox-input").classList.toggle("clicked-color"),e.target.parentNode.querySelector(".checkbox-text").classList.toggle("clicked-text")};checkboxes.forEach((e=>{e.addEventListener("change",changeColor)}));let checkradios=selectAll('input[type="radio"]');const changeColorr=e=>{let t=e.target.parentNode.querySelector(".radio-text");selectAll(".radio-text").forEach((e=>e.parentElement.classList.remove("clicked"))),t.parentElement.classList.add("clicked")};function playVideo(e){e.querySelector(".grid__item-video").play()}function resetVideo(e){var t=e.querySelector(".grid__item-video");t.pause(),t.currentTime=0}function toggleVideo(e){var t=e.querySelector(".grid__item-video");t.paused?t.play():(t.pause(),t.currentTime=0)}checkradios.forEach((e=>{e.addEventListener("change",changeColorr)}));const videoDown=e=>{gsap.timeline({defaults:{ease:"expo.out",delay:0}}).fromTo(e.querySelector(".grid__item-video"),{y:"0%"},{duration:1.25,y:"101%",ease:"expo.inOut"},0)},videoUp=e=>{gsap.timeline({defaults:{ease:"expo.out",delay:0}}).fromTo(e.querySelector(".grid__item-video"),{y:"101%"},{duration:1.25,y:"0%",ease:"expo.inOut"},0)};let imgconts=selectAll(".grid-item-vid");imgconts.forEach((e=>{e.addEventListener("mouseenter",(()=>{e.querySelector(".grid__item-video").style.display="block",videoDown(e),toggleVideo(e)}))})),imgconts.forEach((e=>{e.addEventListener("mouseout",(()=>{let t=e.querySelector(".grid__item-video");videoUp(e),setTimeout((()=>{resetVideo(e),t.style.display="none"}),2e3)}))}));let thirtyWrapper=select(".thirtyworks"),thirtyArrowLeft=selectAll(".thirty-left svg"),thirtyArrowRight=selectAll(".thirty-right svg"),thirtytl=gsap.timeline({repeat:-1,paused:!0});thirtytl.addLabel("start",0).to(thirtyArrowLeft,{duration:2,x:-30,ease:"none"},"start").to(thirtyArrowRight,{duration:2,x:30,ease:"none"},"start").to(thirtyArrowLeft,{duration:2,x:0,ease:"none"},"start+=2").to(thirtyArrowRight,{duration:2,x:0,ease:"none"},"start+=2"),thirtyWrapper.addEventListener("mouseenter",(()=>{thirtytl.play()})),thirtyWrapper.addEventListener("mouseleave",(()=>{thirtytl.pause()}));let projects=selectAll(".feature-inner-wrapper");projects.forEach(((e,t)=>{function o(e){return`rgb(${e.join(", ")})`}let r=o([0,0,0]),n=o([252,18,52]),a=o([255,255,255]),i=gsap.timeline({paused:!0});i.addLabel("start",0).fromTo(e,{duration:.5,backgroundColor:r,ease:"none"},{duration:.5,backgroundColor:n,ease:"none"},"start"),e.addEventListener("mouseenter",(()=>{e.querySelectorAll(".feature-expla-info").forEach((e=>{i.fromTo(e,{duration:.5,color:a,ease:"none"},{duration:.5,color:r,ease:"none"},"start")})),i.play()})),e.addEventListener("mouseleave",(()=>{i.reverse()}))})),document.addEventListener("DOMContentLoaded",(function(){const e=document.title;let t,o=1;const r=()=>{t=setInterval((()=>{o=o<5?o+1:1;const e="Zzzz"+".".repeat(o);document.title=e}),500)};window.addEventListener("blur",(()=>setTimeout(r,12e4))),window.addEventListener("focus",(()=>{clearInterval(t),document.title=e}))})); \ No newline at end of file +import MouseFollower from"mouse-follower";import{initializeApp}from"firebase/app";import{getDatabase,ref,push,set}from"firebase/database";import lozad from"lozad";import{v4 as uuidv4}from"uuid";let select=e=>document.querySelector(e),selectAll=e=>document.querySelectorAll(e);document.addEventListener("DOMContentLoaded",(function(){lozad(".lozad",{rootMargin:"100px 0px",loaded:function(e){}}).observe()})),"serviceWorker"in navigator&&window.addEventListener("load",(()=>{navigator.serviceWorker.register("hypercritical-worker.js").catch((e=>console.log("Error:",e)))}));let midmoon=select(".mid-moon"),menuclose=select(".action--close"),menuopen=select(".action--menuUzi");function open(){midmoon.classList.add("mid-moon--light"),midmoon.classList.remove("mid-moon--dark")}function close(){midmoon.classList.add("mid-moon--dark"),midmoon.classList.remove("mid-moon--light")}function assignLinks(e){for(const t in e)if(e.hasOwnProperty(t)){selectAll(t).forEach((o=>{o?o.href=e[t]:console.error(`Elements matching selector ${t} not found.`)}))}}function assignExp(e){for(const t in e)if(e.hasOwnProperty(t)){selectAll(t).forEach((o=>{o?o.innerHTML=e[t]:console.error(`Elements matching selector ${t} not found.`)}))}}function smoother(){ScrollSmoother.create({smooth:1,effects:!0,smoothTouch:.1})}menuopen.addEventListener("click",open),menuclose.addEventListener("click",close),new Promise(((e,t)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config.json").then((e=>e.json())).then((t=>{assignLinks(t),e()})).catch((e=>{console.error("Error loading config:",e),t(e)}))}))})).then((()=>{console.log("%c Greetings from Hypercritical","color:white;background:#c389e1; font-size: 26px;font-family:sans-serif")})).catch((e=>{console.error("Failed to load configuration or assign links:",e)})),new Promise(((e,t)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config-data.json").then((e=>e.json())).then((t=>{assignExp(t),e()})).catch((e=>{console.error("Error loading config:",e),t(e)}))}))})).then((()=>{})).catch((e=>{console.error("Failed to load configuration or assign data:",e)})),assignExp(),document.addEventListener("DOMContentLoaded",(()=>{let e=select(".menuUzi__item-link"),t=e.querySelector(".contact-emoji"),o=gsap.timeline();e.addEventListener("mouseover",(()=>{o.to(t,{duration:1,rotation:-360,repeat:-1,ease:"linear"})})),e.addEventListener("mouseout",(()=>{o.kill()}))})),gsap.registerPlugin(ScrollTrigger,ScrollSmoother),window.innerWidth>767&&smoother(),window.addEventListener("resize",smoother),gsap.registerPlugin(ScrollTrigger),gsap.registerPlugin(ScrollToPlugin),gsap.registerPlugin(SplitText);const herolargelogo=select(".hero-largelogo");let herotext=new SplitText(herolargelogo,{type:"words",wordsClass:"hero-words"});const splitchars=selectAll(".split-chars");splitchars.forEach((e=>{new SplitText(e,{type:"chars",charsClass:"otherchars"})}));let herowords=selectAll(".hero-words"),heroSeparator=select(".below-line"),heroMedia=select(".parallax-hero"),heroimageWrapper=select(".hero-image");const showHero=()=>{gsap.timeline({defaults:{ease:"expo.out",delay:.5}}).addLabel("start").fromTo(heroSeparator,{width:0},{duration:1.75,width:"100%",stagger:.095},"start").fromTo(herowords,{y:"110%"},{delay:0,duration:2.3,y:"0",stagger:.17,ease:"expo.inOut"},"start+=0.28").fromTo(heroimageWrapper,{width:0},{width:"100%",duration:1.5,ease:"expo.inOut",transformOrigin:"50% 50% 0"},"start+=0.7")};function initParallax(){selectAll(".slide").forEach(((e,t)=>{let o=e.querySelector(".parallax-image");function r(){gsap.fromTo(o,{y:innerWidth>767?"-60vh":"-30vh"},{y:innerWidth>767?"60vh":"30vh",scrollTrigger:{trigger:e,scrub:!0,start:"top bottom",end:"bottom top",markers:!1},ease:"none"})}r(),window.addEventListener("resize",r)}))}function scrollTop(){gsap.to(window,{duration:2,scrollTo:{y:"nav"},ease:"power2.inOut"})}function lineTimeline(e){const t=gsap.timeline({defaults:{duration:3,ease:"power3.out"}});return t.fromTo(e,{scaleX:0,opacity:0,transformOrigin:"left left"},{scaleX:1,opacity:1}),t}document.addEventListener("DOMContentLoaded",(function(){showHero(),scrollTop(),initParallax()})),selectAll("[line-trigger]").forEach((function(e){const t=e.getAttribute("line-trigger"),o=lineTimeline(e);ScrollTrigger.create({trigger:t,start:"top 92%",animation:o,onEnter:()=>o.play(),onLeaveBack:()=>o.reverse({duration:6.5})})})),document.addEventListener("DOMContentLoaded",(function(){let e=select("#toTop");function t(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}t(),window.addEventListener("scroll",t),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".hero-main"},ease:e=>Math.min(1,1.001-Math.pow(2,-10*e))})}))})),document.addEventListener("DOMContentLoaded",(function(){function e(){if(window.innerWidth>767){new MouseFollower}}e(),window.addEventListener("res",e)})),document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(".col__content-txt").forEach((e=>{const t=e.querySelector(".details-content"),o=e.querySelector("summary");gsap.set(t,{height:0,overflow:"hidden"}),o.addEventListener("click",(function(o){e.hasAttribute("open")?gsap.to(t,{height:0,duration:.5,onComplete:()=>{e.removeAttribute("open")}}):function(){const o=t.scrollHeight;e.setAttribute("open",""),gsap.fromTo(t,{height:0},{height:o,duration:.5})}(),o.preventDefault()}))}));const e=document.querySelectorAll("details");e.forEach((t=>{t.addEventListener("click",(o=>{e.forEach((e=>{e!=t&&e.removeAttribute("open")}))}))}))}));let elephant=select(".c-elephant_himself"),elephant_wrapper=select(".elephant-boundary");const elephantcursor=new MouseFollower({el:elephant,container:elephant_wrapper,speed:22.5,hideTimeout:3e4});if(window.innerWidth>767){let e=select(".ourservices");const t=new MouseFollower;e.addEventListener("mouseenter",(()=>{t.setImg("./../../assets/images/peanut.webp")})),e.addEventListener("mouseleave",(()=>{t.removeImg()}))}document.addEventListener("DOMContentLoaded",(()=>{gsap.registerPlugin(ScrollTrigger);const e=gsap.utils.toArray(".white-section");var t=select(".top-arrow-wrapper"),o=select(".top-arrow-path"),r=select(".menu-name"),n=selectAll(".menu-dot-line");function a(){o.style.stroke="var(--color-bg)",t.style.fill="var(--color-black)",n.forEach((e=>{e.style.background="var(--color-black)"})),r.style.color="var(--color-black)"}function i(){o.style.stroke="var(--color-black)",t.style.fill="var(--color-bg)",n.forEach((e=>{e.style.background="var(--color-bg)"})),r.style.color="var(--color-bg)"}e.forEach(((e,t)=>{gsap.timeline({scrollTrigger:{trigger:e,id:t+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,onEnter:()=>i(),onLeave:()=>a(),onEnterBack:()=>i(),onLeaveBack:()=>a()}})}))}));import{Item}from"./code-anime/item";[...selectAll(".grid-itemz > .grid__item-img")].forEach((e=>new Item(e)));let worldvideoWrapper=select(".global-video"),worldvideo=select("#video-background");gsap.registerPlugin(ScrollTrigger);const animateVideo=gsap.timeline({scrollTrigger:{trigger:worldvideoWrapper,start:"top bottom",end:"top top",scrub:!0,markers:!1,toggleActions:"play none none reverse"}});animateVideo.fromTo(worldvideo,{scaleX:.9,borderRadius:"45px"},{scaleX:1,borderRadius:"0px"});const playvideotl=gsap.timeline({scrollTrigger:{trigger:worldvideo,start:"top bottom",end:"bottom top",scrub:!0,onEnter:()=>{worldvideo.paused&&worldvideo.play().catch((e=>{"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeave:()=>{worldvideo.paused||worldvideo.pause()},onEnterBack:()=>{worldvideo.paused&&worldvideo.play().catch((e=>{"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeaveBack:()=>{worldvideo.paused||worldvideo.pause()}}});var playPromise=worldvideo.play();function showDialog(){gsap.to("#overlay",{duration:.5,opacity:1,scale:1,onComplete:()=>{gsap.to("#dialog",{duration:.5,scale:1,opacity:1,ease:"bounce"})}})}function hideDialog(){gsap.to("#dialog",{duration:.5,scale:0,opacity:0,onComplete:()=>{gsap.to("#overlay",{duration:.5,opacity:0,scale:0})}})}void 0!==playPromise&&playPromise.then((e=>{})).catch((e=>{}));const firebaseConfig={apiKey:process.env.FIREBASE_API_KEY,authDomain:process.env.FIREBASE_AUTH_DOMAIN,databaseURL:process.env.FIREBASE_DATABASE_URL,projectId:process.env.FIREBASE_PROJECT_ID,storageBucket:process.env.FIREBASE_STORAGE_BUCKET,messagingSenderId:process.env.FIREBASE_MESSAGING_SENDER_ID,appId:process.env.FIREBASE_APP_ID,measurementId:process.env.FIREBASE_MEASUREMENT_ID},app=initializeApp(firebaseConfig),database=getDatabase(app);function generateInvoiceNumber(){return`INV-${uuidv4().substring(0,6)}`}document.getElementById("consultationForm").addEventListener("submit",(function(e){e.preventDefault();var t=document.getElementById("message").value,o=document.getElementById("email").value,r=document.getElementById("yourname").value;const n=generateInvoiceNumber();var a="";document.getElementById("Web-Design").checked&&(a+="Web Design, "),document.getElementById("SEO").checked&&(a+="SEO, "),document.getElementById("Development").checked&&(a+="Development, "),document.getElementById("Other").checked&&(a+="Other, "),a=a.slice(0,-2);for(var i="",s=document.getElementsByName("priceGroup"),l=0;l{e.target.parentNode.querySelector(".checkbox-input").classList.toggle("clicked-color"),e.target.parentNode.querySelector(".checkbox-text").classList.toggle("clicked-text")};checkboxes.forEach((e=>{e.addEventListener("change",changeColor)}));let checkradios=selectAll('input[type="radio"]');const changeColorr=e=>{let t=e.target.parentNode.querySelector(".radio-text");selectAll(".radio-text").forEach((e=>e.parentElement.classList.remove("clicked"))),t.parentElement.classList.add("clicked")};function playVideo(e){e.querySelector(".grid__item-video").play()}function resetVideo(e){var t=e.querySelector(".grid__item-video");t.pause(),t.currentTime=0}function toggleVideo(e){var t=e.querySelector(".grid__item-video");t.paused?t.play():(t.pause(),t.currentTime=0)}checkradios.forEach((e=>{e.addEventListener("change",changeColorr)}));const videoDown=e=>{gsap.timeline({defaults:{ease:"expo.out",delay:0}}).fromTo(e.querySelector(".grid__item-video"),{y:"0%"},{duration:1.25,y:"101%",ease:"expo.inOut"},0)},videoUp=e=>{gsap.timeline({defaults:{ease:"expo.out",delay:0}}).fromTo(e.querySelector(".grid__item-video"),{y:"101%"},{duration:1.25,y:"0%",ease:"expo.inOut"},0)};let imgconts=selectAll(".grid-item-vid");imgconts.forEach((e=>{e.addEventListener("mouseenter",(()=>{e.querySelector(".grid__item-video").style.display="block",videoDown(e),toggleVideo(e)}))})),imgconts.forEach((e=>{e.addEventListener("mouseout",(()=>{let t=e.querySelector(".grid__item-video");videoUp(e),setTimeout((()=>{resetVideo(e),t.style.display="none"}),2e3)}))}));let thirtyWrapper=select(".thirtyworks"),thirtyArrowLeft=selectAll(".thirty-left svg"),thirtyArrowRight=selectAll(".thirty-right svg"),thirtytl=gsap.timeline({repeat:-1,paused:!0});thirtytl.addLabel("start",0).to(thirtyArrowLeft,{duration:2,x:-30,ease:"none"},"start").to(thirtyArrowRight,{duration:2,x:30,ease:"none"},"start").to(thirtyArrowLeft,{duration:2,x:0,ease:"none"},"start+=2").to(thirtyArrowRight,{duration:2,x:0,ease:"none"},"start+=2"),thirtyWrapper.addEventListener("mouseenter",(()=>{thirtytl.play()})),thirtyWrapper.addEventListener("mouseleave",(()=>{thirtytl.pause()}));let projects=selectAll(".feature-inner-wrapper");if(projects.forEach(((e,t)=>{function o(e){return`rgb(${e.join(", ")})`}let r=o([0,0,0]),n=o([252,18,52]),a=o([255,255,255]),i=gsap.timeline({paused:!0});i.addLabel("start",0).fromTo(e,{duration:.5,backgroundColor:r,ease:"none"},{duration:.5,backgroundColor:n,ease:"none"},"start"),e.addEventListener("mouseenter",(()=>{e.querySelectorAll(".feature-expla-info").forEach((e=>{i.fromTo(e,{duration:.5,color:a,ease:"none"},{duration:.5,color:r,ease:"none"},"start")})),i.play()})),e.addEventListener("mouseleave",(()=>{i.reverse()}))})),document.addEventListener("DOMContentLoaded",(function(){const e=document.title;let t,o=1;const r=()=>{t=setInterval((()=>{o=o<5?o+1:1;const e="Zzzz"+".".repeat(o);document.title=e}),500)};window.addEventListener("blur",(()=>setTimeout(r,12e4))),window.addEventListener("focus",(()=>{clearInterval(t),document.title=e}))})),innerWidth<425){const e=select(".parallax-process-image");e.src="assets/images/hero-small.webp",e.style.width="100vw"} \ No newline at end of file diff --git a/js/main/projects/ProjectContent.jsx b/js/main/projects/ProjectContent.jsx index 485f03f3..e751fbf5 100644 --- a/js/main/projects/ProjectContent.jsx +++ b/js/main/projects/ProjectContent.jsx @@ -1,7 +1,8 @@ import React from "react"; +import { useNavigate, Navigate } from "react-router-dom"; import { html } from "splitting"; -function ProjectContent({ pageData }) { +function ProjectContent({ pageData, nextPage }) { let mediaAttr; if (window.innerWidth < 768) { @@ -19,8 +20,13 @@ function ProjectContent({ pageData }) { const media4 = mediaUrls[3]; const media5 = mediaUrls[4]; const media6 = mediaUrls[5]; + const media7 = mediaUrls[6]; - console.log(mediaUrls); + // console.log(mediaUrls); + + // const gotoPage = () => { + // navigate(`project#${nextPage}`); + // }; return ( <> @@ -57,11 +63,11 @@ function ProjectContent({ pageData }) {
CLIENT
-
{pageData.client}
+
{pageData.client}
EXPERTISE
-
{pageData.task}
+
{pageData.task}
YEAR
@@ -74,7 +80,11 @@ function ProjectContent({ pageData }) {
{pageData.content}
{pageData.Analysis}
-
+
+
+ +
+
@@ -94,7 +104,11 @@ function ProjectContent({ pageData }) {
-
+
+
+ +
+
@@ -125,7 +139,11 @@ function ProjectContent({ pageData }) {
Solution
-
+
+
+ +
+
@@ -173,8 +191,58 @@ function ProjectContent({ pageData }) { )}
+
+ {media7 !== undefined && ( + <> +
+ {media7.endsWith(".mp4") || media7.endsWith(".webm") ? ( + + ) : ( + {pageData.title} + )} +
+ + )} +
+
+ + setTimeout(() => { + location.reload(); + document.documentElement.scrollTop = 0; + }, 300) + } + // onClick={() => { + // window.location = `/project#${nextPage}`; + // }} + className="thirty-wrapper" + > +
+ +
+
+ +
+
+ + + +
+
+ Next Project +
+
+ + + +
+
+
); } @@ -201,35 +269,28 @@ export default ProjectContent; // return ( // <> -// {/* Hero Section */} //
//
//
{MediaElement({ url: pageData.previewImage, title: pageData.title })}
//
//
-// {/* Details Section */} //
-// {/* Metadata */} //
-// {/* Client */} //
//
CLIENT
//
{pageData.client}
//
-// {/* Expertise */} //
//
EXPERTISE
//
{pageData.task}
//
-// {/* Year */} //
//
YEAR
//
{pageData.year}
//
//
-// {/* About Project */} //
//
About Project
//
@@ -239,7 +300,6 @@ export default ProjectContent; //
//
-// {/* Images */} // {mediaUrls.map((url, index) => ( //
//
@@ -248,8 +308,7 @@ export default ProjectContent; //
// ))} -// {/* Additional Images */} -// {mediaUrls.slice(6).map((url, index) => ( +// {mediaUrls.slice(7).map((url, index) => ( //
//
// diff --git a/js/main/projects/ProjectPage.jsx b/js/main/projects/ProjectPage.jsx index dc1a3bd5..4b815533 100644 --- a/js/main/projects/ProjectPage.jsx +++ b/js/main/projects/ProjectPage.jsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { HashRouter as Router, Route, Routes, Switch } from "react-router-dom"; +import { HashRouter as Router, Route, Routes, Switch, useNavigate } from "react-router-dom"; import { createRoot } from "react-dom/client"; import ProjectContent from "./ProjectContent"; import pagesData from "../../../includes/project-data.json"; @@ -7,9 +7,13 @@ import ErrorBoundary from "../components/ErrorBoundary"; import Vanilla from "./ProjectVanilla"; function App() { + // const navigate = useNavigate(); + const [currentPageData, setCurrentPageData] = useState(null); + const [currentIndex, setCurrentIndex] = useState(null); const [dataState, setDataState] = useState("LOADING"); const [urlstate, seturlState] = useState("FAILED"); + const [nextiousPage, setNextiouspage] = useState(""); useEffect(() => { const isBrowser = @@ -39,23 +43,58 @@ function App() { const page = pagesData.find((p) => p.id === path); if (page) { setCurrentPageData(page); + + let currentIndex = page.id; + // console.log(`currentpage id ${currentIndex}`); + + // Extract all IDs from pagesData + + let allIds = []; + allIds = pagesData.map((p) => p.id); + //fetch the whole data + let allData = pagesData.map((data) => data); + + let allIndexes = [...allIds]; + // console.log("All Indexes:", allIndexes); + + //? find current age index/ id + const currentId = allData.findIndex((page) => page.id === currentIndex); + + let nextId = currentId + parseInt("1"); + let nextPage; + + if (nextId == allIndexes.length) { + nextPage = allIndexes[0]; + setNextiouspage(nextPage); + console.log(`nextiousPage: ${nextiousPage}`); + } else { + nextPage = allIndexes[`${nextId}`]; + setNextiouspage(nextPage); + console.log(`nextiousPage: ${nextiousPage}`); + } + + // console.log(`current id, ${currentId}`); + // console.log(`next id, ${nextId}`); + // console.log(allIndexes.length); } else { setDataState("ERROR"); } }; fetchData(); - }, []); + }, [nextiousPage]); // console.log(`currentPageData-out`, currentPageData); useEffect(() => { if (currentPageData !== null) { setDataState("SUCCESS"); - Vanilla(); - // console.log(urlstate); + //* Vanilla called in project js file + //* This is an alternative... + // Vanilla(); } else { - Vanilla(); + // Vanilla(); + //? do nothing } }); @@ -68,7 +107,7 @@ function App() { <> {dataState === "SUCCESS" && currentPageData !== null && ( <> - + {/* */} )} @@ -105,17 +144,3 @@ const renderApp = () => { }; document.addEventListener("DOMContentLoaded", renderApp); - -// import React, { useRef, useEffect } from "react"; - -// function MyComponent() { -// const myRef = useRef(null); - -// useEffect(() => { -// // Now you can access the DOM element -// const element = myRef.current; -// // Perform operations on 'element' -// }, []); - -// return
Hello, world!
; -// } diff --git a/js/main/projects/ProjectVanilla.jsx b/js/main/projects/ProjectVanilla.jsx index c3f155ea..6f0ed82f 100644 --- a/js/main/projects/ProjectVanilla.jsx +++ b/js/main/projects/ProjectVanilla.jsx @@ -1,7 +1,6 @@ -import MouseFollower from "mouse-follower"; -import { useEffect } from "react"; +import React, { useEffect } from "react"; -export default function Vanilla(params) { +function Vanilla() { global; let select = (e) => document.querySelector(e); let selectAll = (e) => document.querySelectorAll(e); @@ -11,234 +10,53 @@ export default function Vanilla(params) { effects: true, smoothTouch: 0.1, }); - //Group 1: menuUzi midmoon - let midmoon = select(".mid-moon"); - let menuclose = select(".action--close"); - let menuopen = select(".action--menuUzi"); - function open() { - midmoon.classList.add("mid-moon--light"); - midmoon.classList.remove("mid-moon--dark"); - } - // Close the menuUzi. - function close() { - midmoon.classList.add("mid-moon--dark"); - midmoon.classList.remove("mid-moon--light"); - } - menuopen.addEventListener("click", open); - menuclose.addEventListener("click", close); - // Group 2: assign links - function assignLinks(config) { - for (const key in config) { - if (config.hasOwnProperty(key)) { - const elements = selectAll(key); - elements.forEach((element) => { - if (element) { - element.href = config[key]; - } else { - console.error(`Elements matching selector ${key} not found.`); - } - }); - } - } - } - new Promise((resolve, reject) => { - document.addEventListener("DOMContentLoaded", function () { - fetch("includes/config.json") - .then((response) => response.json()) - .then((data) => { - assignLinks(data); - resolve(); - }) - .catch((error) => { - console.error("Error loading config:", error); - reject(error); // Reject the promise if there's an error` - }); - }); - }) - .then(() => { - console.log( - "%c Greetings from Hypercritical", - "color:white;background:#c389e1; font-size: 26px;font-family:sans-serif" - ); - }) - .catch((error) => { - console.error("Failed to load configuration or assign links:", error); - }); - //Assign data inside - function assignExp(config) { - for (const key in config) { - if (config.hasOwnProperty(key)) { - const elements = selectAll(key); - elements.forEach((element) => { - if (element) { - element.innerHTML = config[key]; - } else { - console.error(`Elements matching selector ${key} not found.`); - } - }); - } - } - } - new Promise((resolve, reject) => { - document.addEventListener("DOMContentLoaded", function () { - fetch("includes/config-data.json") - .then((response) => response.json()) - .then((data) => { - assignExp(data); - resolve(); - }) - .catch((error) => { - console.error("Error loading config:", error); - reject(error); // Reject the promise if there's an error` - }); - }); - }) - .then(() => { - // console.log("Configuration loaded and links assigned."); - }) - .catch((error) => { - console.error("Failed to load configuration or assign links:", error); - }); - assignExp(); - //Group 3: show mouse follower - document.addEventListener("DOMContentLoaded", function () { - function cursor() { - if (innerWidth > 767) { - let cursorme = new MouseFollower(); - } - } - cursor(); - window.addEventListener("res", cursor); - }); - //Group 4: show and hide the scroll top button and scroll to top - document.addEventListener("DOMContentLoaded", function () { - let toTopbutton = select("#toTop"); - // Add an event listener to check scroll position - function showTotop() { - let scrollPosition = window.scrollY || document.documentElement.scrollTop; - if (scrollPosition > 1.2 * window.innerHeight) { - toTopbutton.style.display = "block"; - } else { - toTopbutton.style.display = "none"; - } - } - showTotop(); - window.addEventListener("scroll", showTotop); - function scrollTop() { - gsap.to(window, { - duration: 2, - delay: 0, - scrollTo: { - y: ".nav", - }, - ease: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), - }); - } - toTopbutton.addEventListener("click", scrollTop); - }); - // Group 6: inverse the arrow colors using gsap - document.addEventListener("DOMContentLoaded", () => { - gsap.registerPlugin(ScrollTrigger); - const darkSections = gsap.utils.toArray(".white-section"); - var arrowWrapper = select(".top-arrow-wrapper"); - var arrowpath = select(".top-arrow-path"); - var menuName = select(".menu-name"); - var menuDotline = selectAll(".menu-dot-line"); - let navBelowline = select(".nav .below-line"); - let mainloogo = select(".nav_logo_parent"); - let midloogo = select(".est_nav"); - function makedark() { - arrowpath.style.stroke = "var(--color-bg)"; - arrowWrapper.style.fill = "var(--color-black)"; - menuDotline.forEach((menuDotline) => { - menuDotline.style.background = "var(--color-black)"; - }); - menuName.style.color = "var(--color-black)"; - } - function makedarker() { - arrowpath.style.stroke = "var(--color-black)"; - midloogo.style.fill = "var(--color-black)"; - navBelowline.style.background = "var(--color-black)"; - mainloogo.style.color = "var(--color-black)"; - arrowWrapper.style.fill = "var(--color-black)"; - menuDotline.forEach((menuDotline) => { - menuDotline.style.background = "var(--color-black)"; - }); - menuName.style.color = "var(--color-black)"; - } - function makewhite() { - midloogo.style.fill = "var(--color-bg)"; - navBelowline.style.background = "var(--color-bg)"; - mainloogo.style.color = "var(--color-bg)"; - menuDotline.forEach((menuDotline) => { - menuDotline.style.background = "var(--color-bg)"; - }); - menuName.style.color = "var(--color-bg)"; - } - //maintain white for hero section - function maintainWhite() { - let scrollPosition = window.scrollY || document.documentElement.scrollTop; - if (scrollPosition < 0.8 * window.innerHeight) { - makewhite(); - } else if (scrollPosition >= 0.8 * window.innerHeight && scrollPosition < 1.8 * window.innerHeight) { - makedarker(); - } - } - maintainWhite(); - window.addEventListener("scroll", maintainWhite); - darkSections.forEach((darkSection, i) => { - const darken = gsap.timeline({ - scrollTrigger: { - trigger: darkSection, - id: i + 1, - start: "top top", - endtrigger: darkSection, - end: "bottom bottom", - scrub: true, - markers: !true, - onEnter: () => makedark(), - onLeave: () => makewhite(), - onEnterBack: () => makedark(), - onLeaveBack: () => makewhite(), - }, - }); - }); - }); + //*Group 1: menuUzi midmoon + //*Group 2: assign links + //*Group 3: show mouse follower + //*Group 4: show and hide the scroll top button and scroll to top + //*Group 5: inverse the arrow colors using gsap //Split text - gsap.registerPlugin(SplitText); - const splitchars = selectAll(".splitchars"); - splitchars.forEach((splitchar) => { - new SplitText(splitchar, { - type: "chars", - charsClass: "otherchars", + function splitAnimate(params) { + gsap.registerPlugin(SplitText); + const splitchars = selectAll(".splitchars"); + splitchars.forEach((splitchar, key, p) => { + // console.log(p); + new SplitText(splitchar, { + type: "chars", + charsClass: "otherchars", + }); }); - }); - - let herowords = selectAll(".otherchars"); - let navBelowline = selectAll(".nav .below-line"); - - const showHero = () => { - gsap - .timeline({ defaults: { ease: "expo.out", delay: 0 } }) - .set(splitchars, { overflow: "hidden" }) - .addLabel("start") - .fromTo( - herowords, - { y: "102%" }, - { - duration: 1.3, - y: "0", - ease: "power2.inOut", - }, - "start+=0" - ); - }; - - showHero(); + let herowords = selectAll(".otherchars"); + + const showHero = () => { + gsap + .timeline({ defaults: { ease: "expo.out", delay: 0 } }) + .set(splitchars, { overflow: "hidden" }) + .addLabel("start") + .fromTo( + herowords, + { y: "102%" }, + + { + duration: 1.3, + y: "0", + ease: "power2.inOut", + }, + "start+=0" + ); + }; + + showHero(); + } + setTimeout(() => { + splitAnimate(); + }, 10); // !closing tag :dont remove } + +export default Vanilla; diff --git a/js/main/projects/project.js b/js/main/projects/project.js index e69de29b..99c72e00 100644 --- a/js/main/projects/project.js +++ b/js/main/projects/project.js @@ -0,0 +1 @@ +import MouseFollower from"mouse-follower";import Vanilla from"./ProjectVanilla";let select=e=>document.querySelector(e),selectAll=e=>document.querySelectorAll(e);gsap.registerPlugin(ScrollTrigger,ScrollSmoother);let midmoon=select(".mid-moon"),menuclose=select(".action--close"),menuopen=select(".action--menuUzi");function open(){midmoon.classList.add("mid-moon--light"),midmoon.classList.remove("mid-moon--dark")}function close(){midmoon.classList.add("mid-moon--dark"),midmoon.classList.remove("mid-moon--light")}function AnimateArrows(e){let o=select(".thirtyworks"),n=selectAll(".thirty-left svg"),t=selectAll(".thirty-right svg"),r=gsap.timeline({repeat:-1,paused:!0});r.addLabel("start",0).to(n,{duration:2,x:-30,ease:"none"},"start").to(t,{duration:2,x:30,ease:"none"},"start").to(n,{duration:2,x:0,ease:"none"},"start+=2").to(t,{duration:2,x:0,ease:"none"},"start+=2"),o.addEventListener("mouseenter",(()=>{r.play()})),o.addEventListener("mouseleave",(()=>{r.pause()}))}function assignLinks(e){for(const o in e)if(e.hasOwnProperty(o)){selectAll(o).forEach((n=>{n?n.href=e[o]:console.error(`Elements matching selector ${o} not found.`)}))}}function assignExp(e){for(const o in e)if(e.hasOwnProperty(o)){selectAll(o).forEach((n=>{n?n.innerHTML=e[o]:console.error(`Elements matching selector ${o} not found.`)}))}}menuopen.addEventListener("click",open),menuclose.addEventListener("click",close),new Promise(((e,o)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config.json").then((e=>e.json())).then((o=>{assignLinks(o),e()})).catch((e=>{console.error("Error loading config:",e),o(e)}))}))})).then((()=>{console.log("%c Greetings from Hypercritical","color:white;background:#c389e1; font-size: 26px;font-family:sans-serif")})).catch((e=>{console.error("Failed to load configuration or assign links:",e)})),new Promise(((e,o)=>{document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config-data.json").then((e=>e.json())).then((o=>{assignExp(o),e()})).catch((e=>{console.error("Error loading config:",e),o(e)}))}))})).then((()=>{Vanilla(),AnimateArrows()})).catch((e=>{console.error("Failed to load configuration or assign links:",e)})),assignExp(),document.addEventListener("DOMContentLoaded",(function(){function e(){if(innerWidth>767){new MouseFollower}}e(),window.addEventListener("resize",e)})),document.addEventListener("DOMContentLoaded",(function(){let e=select("#toTop");function o(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}o(),window.addEventListener("scroll",o),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".hero-main"},ease:e=>Math.min(1,1.001-Math.pow(2,-10*e))})}))})),document.addEventListener("DOMContentLoaded",(()=>{gsap.registerPlugin(ScrollTrigger);const e=gsap.utils.toArray(".white-section");var o=select(".top-arrow-wrapper"),n=select(".top-arrow-path"),t=select(".menu-name"),r=selectAll(".menu-dot-line");let l=select(".nav .below-line"),s=select(".nav_logo_parent"),c=select(".est_nav");function a(){n.style.stroke="var(--color-bg)",o.style.fill="var(--color-black)",r.forEach((e=>{e.style.background="var(--color-black)"})),t.style.color="var(--color-black)"}function i(){c.style.fill="var(--color-bg)",l.style.background="var(--color-bg)",s.style.color="var(--color-bg)",r.forEach((e=>{e.style.background="var(--color-bg)"})),t.style.color="var(--color-bg)"}function d(){(window.scrollY||document.documentElement.scrollTop)<.8*window.innerHeight&&i()}d(),window.addEventListener("scroll",d),e.forEach(((e,d)=>{gsap.timeline({scrollTrigger:{trigger:e,id:d+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,markers:!1,onEnter:()=>(n.style.stroke="var(--color-black)",c.style.fill="var(--color-black)",l.style.background="var(--color-black)",s.style.color="var(--color-black)",o.style.fill="var(--color-black)",r.forEach((e=>{e.style.background="var(--color-black)"})),void(t.style.color="var(--color-black)")),onLeave:()=>a(),onEnterBack:()=>i(),onLeaveBack:()=>a()}})}))})); \ No newline at end of file diff --git a/main.bundle.js b/main.bundle.js index ebe93a11..bf9d520e 100644 --- a/main.bundle.js +++ b/main.bundle.js @@ -1,2 +1,2 @@ /*! For license information please see main.bundle.js.LICENSE.txt */ -(()=>{var e={"./node_modules/@firebase/database/dist/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{DataSnapshot:()=>Ur,Database:()=>Ms,OnDisconnect:()=>Lr,QueryConstraint:()=>ls,TransactionResult:()=>Ks,_QueryImpl:()=>Mr,_QueryParams:()=>yt,_ReferenceImpl:()=>Br,_TEST_ACCESS_forceRestClient:()=>Xs,_TEST_ACCESS_hijackHash:()=>Qs,_initStandalone:()=>Js,_repoManagerDatabaseFromApp:()=>Ls,_setSDKVersion:()=>h,_validatePathString:()=>$i,_validateWritablePath:()=>Ki,child:()=>zr,connectDatabaseEmulator:()=>Us,enableLogging:()=>zs,endAt:()=>hs,endBefore:()=>ds,equalTo:()=>Ps,forceLongPolling:()=>js,forceWebSockets:()=>qs,get:()=>Jr,getDatabase:()=>Bs,goOffline:()=>Ws,goOnline:()=>Vs,increment:()=>Ys,limitToFirst:()=>vs,limitToLast:()=>ws,off:()=>as,onChildAdded:()=>is,onChildChanged:()=>rs,onChildMoved:()=>ss,onChildRemoved:()=>os,onDisconnect:()=>Hr,onValue:()=>ns,orderByChild:()=>Cs,orderByKey:()=>Ss,orderByPriority:()=>Ts,orderByValue:()=>xs,push:()=>$r,query:()=>Ds,ref:()=>Wr,refFromURL:()=>Vr,remove:()=>Yr,runTransaction:()=>Gs,serverTimestamp:()=>$s,set:()=>Kr,setPriority:()=>Gr,setWithPriority:()=>Qr,startAfter:()=>ms,startAt:()=>fs,update:()=>Xr});var i=n("./node_modules/@firebase/app/dist/esm/index.esm2017.js"),r=n("./node_modules/@firebase/component/dist/esm/index.esm2017.js"),s=n("./node_modules/@firebase/util/dist/index.esm2017.js"),o=n("./node_modules/@firebase/logger/dist/esm/index.esm2017.js");const a="@firebase/database",l="1.0.4";let c="";function h(e){c=e}class u{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),(0,s.stringify)(t))}get(e){const t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:(0,s.jsonEval)(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class d{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return(0,s.contains)(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}const p=function(e){try{if("undefined"!=typeof window&&void 0!==window[e]){const t=window[e];return t.setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new u(t)}}catch(e){}return new d},f=p("localStorage"),_=p("sessionStorage"),m=new o.Logger("@firebase/database"),g=function(){let e=1;return function(){return e++}}(),v=function(e){const t=(0,s.stringToByteArray)(e),n=new s.Sha1;n.update(t);const i=n.digest();return s.base64.encodeByteArray(i)},y=function(...e){let t="";for(let n=0;nn?i.push(e.substring(r,n)):i.push(e.substring(r,r+t));return i};function M(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}const F=function(e){(0,s.assert)(!x(e),"Invalid JSON number");const t=1023;let n,i,r,o,a;0===e?(i=0,r=0,n=1/e==-1/0?1:0):(n=e<0,(e=Math.abs(e))>=Math.pow(2,-1022)?(o=Math.min(Math.floor(Math.log(e)/Math.LN2),t),i=o+t,r=Math.round(e*Math.pow(2,52-o)-Math.pow(2,52))):(i=0,r=Math.round(e/Math.pow(2,-1074))));const l=[];for(a=52;a;a-=1)l.push(r%2?1:0),r=Math.floor(r/2);for(a=11;a;a-=1)l.push(i%2?1:0),i=Math.floor(i/2);l.push(n?1:0),l.reverse();const c=l.join("");let h="";for(a=0;a<64;a+=8){let e=parseInt(c.substr(a,8),2).toString(16);1===e.length&&(e="0"+e),h+=e}return h.toLowerCase()};const q=new RegExp("^-?(0*)\\d{1,10}$"),j=function(e){if(q.test(e)){const t=Number(e);if(t>=-2147483648&&t<=2147483647)return t}return null},B=function(e){try{e()}catch(e){setTimeout((()=>{const t=e.stack||"";throw k("Exception was thrown by user callback.",t),e}),Math.floor(0))}},U=function(e,t){const n=setTimeout(e,t);return"number"==typeof n&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):"object"==typeof n&&n.unref&&n.unref(),n};class W{constructor(e,t){this.appName_=e,this.appCheckProvider=t,this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null==t||t.get().then((e=>this.appCheck=e))}getToken(e){return this.appCheck?this.appCheck.getToken(e):new Promise(((t,n)=>{setTimeout((()=>{this.appCheck?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t||t.get().then((t=>t.addTokenListener(e)))}notifyForInvalidToken(){k(`Provided AppCheck credentials for the app named "${this.appName_}" are invalid. This usually indicates your app was not initialized correctly.`)}}class V{constructor(e,t,n){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=n,this.auth_=null,this.auth_=n.getImmediate({optional:!0}),this.auth_||n.onInit((e=>this.auth_=e))}getToken(e){return this.auth_?this.auth_.getToken(e).catch((e=>e&&"auth/token-not-initialized"===e.code?(E("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e))):new Promise(((t,n)=>{setTimeout((()=>{this.auth_?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then((t=>t.addAuthTokenListener(e)))}removeTokenChangeListener(e){this.authProvider_.get().then((t=>t.removeAuthTokenListener(e)))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',k(e)}}class z{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}z.OWNER="owner";const H="5",$=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Y="ac",K="websocket",G="long_polling";class Q{constructor(e,t,n,i,r=!1,s="",o=!1,a=!1){this.secure=t,this.namespace=n,this.webSocketOnly=i,this.nodeAdmin=r,this.persistenceKey=s,this.includeNamespaceInQueryParams=o,this.isUsingEmulator=a,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=f.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&f.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){const e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${t}`}}function X(e,t,n){let i;if((0,s.assert)("string"==typeof t,"typeof type must == string"),(0,s.assert)("object"==typeof n,"typeof params must == object"),t===K)i=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==G)throw new Error("Unknown connection type: "+t);i=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}(function(e){return e.host!==e.internalHost||e.isCustomHost()||e.includeNamespaceInQueryParams})(e)&&(n.ns=e.namespace);const r=[];return M(n,((e,t)=>{r.push(e+"="+t)})),i+r.join("&")}class J{constructor(){this.counters_={}}incrementCounter(e,t=1){(0,s.contains)(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return(0,s.deepCopy)(this.counters_)}}const Z={},ee={};function te(e){const t=e.toString();return Z[t]||(Z[t]=new J),Z[t]}class ne{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse{this.onMessage_(e[t])}));if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}const ie="start";class re{constructor(e,t,n,i,r,s,o){this.connId=e,this.repoInfo=t,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.transportSessionId=s,this.lastSessionId=o,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=S(e),this.stats_=te(t),this.urlFn=e=>(this.appCheckToken&&(e[Y]=this.appCheckToken),X(t,G,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new ne(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout((()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null}),Math.floor(3e4)),function(e){if((0,s.isNodeSdk)()||"complete"===document.readyState)e();else{let t=!1;const n=function(){document.body?t||(t=!0,e()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",(()=>{"complete"===document.readyState&&n()})),window.attachEvent("onload",n))}}((()=>{if(this.isClosed_)return;this.scriptTagHolder=new se(((...e)=>{const[t,n,i,r,s]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,t===ie)this.id=n,this.password=i;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);n?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(n,(()=>{this.onClosed_()}))):this.onClosed_()}}),((...e)=>{const[t,n]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,n)}),(()=>{this.onClosed_()}),this.urlFn);const e={};e[ie]="t",e.ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v=H,this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e[Y]=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&$.test(location.hostname)&&(e.r="f");const t=this.urlFn(e);this.log_("Connecting via long-poll to "+t),this.scriptTagHolder.addTag(t,(()=>{}))}))}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){re.forceAllow_=!0}static forceDisallow(){re.forceDisallow_=!0}static isAvailable(){return!(0,s.isNodeSdk)()&&(!!re.forceAllow_||!(re.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI))}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){const t=(0,s.stringify)(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=(0,s.base64Encode)(t),i=L(n,1840);for(let e=0;edocument.domain="'+document.domain+'";<\/script>'}const i=""+n+"";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){E("frame writing exception"),e.stack&&E(e.stack),E(e)}}}static createIFrame_(){const e=document.createElement("iframe");if(e.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(e);try{e.contentWindow.document||E("No IE domain setting required")}catch(t){const n=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+n+"';document.close();})())"}return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout((()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)}),Math.floor(0)));const e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;const e={};e.id=this.myID,e.pw=this.myPW,e.ser=this.currentSerial;let t=this.urlFn(e),n="",i=0;for(;this.pendingSegs.length>0;){if(!(this.pendingSegs[0].d.length+30+n.length<=1870))break;{const e=this.pendingSegs.shift();n=n+"&seg"+i+"="+e.seg+"&ts"+i+"="+e.ts+"&d"+i+"="+e.d,i++}}return t+=n,this.addLongPollTag_(t,this.currentSerial),!0}return!1}enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);const n=()=>{this.outstandingRequests.delete(t),this.newRequest_()},i=setTimeout(n,Math.floor(25e3));this.addTag(e,(()=>{clearTimeout(i),n()}))}addTag(e,t){(0,s.isNodeSdk)()?this.doNodeLongPoll(e,t):setTimeout((()=>{try{if(!this.sendNewPolls)return;const n=this.myIFrame.doc.createElement("script");n.type="text/javascript",n.async=!0,n.src=e,n.onload=n.onreadystatechange=function(){const e=n.readyState;e&&"loaded"!==e&&"complete"!==e||(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),t())},n.onerror=()=>{E("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(n)}catch(e){}}),Math.floor(1))}}let oe=null;"undefined"!=typeof MozWebSocket?oe=MozWebSocket:"undefined"!=typeof WebSocket&&(oe=WebSocket);class ae{constructor(e,t,n,i,r,s,o){this.connId=e,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=S(this.connId),this.stats_=te(t),this.connURL=ae.connectionURL_(t,s,o,i,n),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,n,i,r){const o={};return o.v=H,!(0,s.isNodeSdk)()&&"undefined"!=typeof location&&location.hostname&&$.test(location.hostname)&&(o.r="f"),t&&(o.s=t),n&&(o.ls=n),i&&(o[Y]=i),r&&(o.p=r),X(e,K,o)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,f.set("previous_websocket_failure",!0);try{let e;if((0,s.isNodeSdk)()){const t=this.nodeAdmin?"AdminNode":"Node";e={headers:{"User-Agent":`Firebase/${H}/${c}/${process.platform}/${t}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(e.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(e.headers["X-Firebase-AppCheck"]=this.appCheckToken);const n="MISSING_ENV_VAR",i=0===this.connURL.indexOf("wss://")?n.HTTPS_PROXY||n.https_proxy:n.HTTP_PROXY||n.http_proxy;i&&(e.proxy={origin:i})}this.mySock=new oe(this.connURL,[],e)}catch(e){this.log_("Error instantiating WebSocket.");const t=e.message||e.data;return t&&this.log_(t),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");const t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){ae.forceDisallow_=!0}static isAvailable(){let e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){const t=/Android ([0-9]{0,}\.[0-9]{0,})/,n=navigator.userAgent.match(t);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=!0)}return!e&&null!==oe&&!ae.forceDisallow_}static previouslyFailed(){return f.isInMemoryStorage||!0===f.get("previous_websocket_failure")}markConnectionHealthy(){f.remove("previous_websocket_failure")}appendFrame_(e){if(this.frames.push(e),this.frames.length===this.totalFrames){const e=this.frames.join("");this.frames=null;const t=(0,s.jsonEval)(e);this.onMessage(t)}}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if((0,s.assert)(null===this.frames,"We already have a frame buffer"),e.length<=6){const t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){if(null===this.mySock)return;const t=e.data;if(this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames)this.appendFrame_(t);else{const e=this.extractFrameCount_(t);null!==e&&this.appendFrame_(e)}}send(e){this.resetKeepAlive();const t=(0,s.stringify)(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=L(t,16384);n.length>1&&this.sendString_(String(n.length));for(let e=0;e{this.mySock&&this.sendString_("0"),this.resetKeepAlive()}),Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}ae.responsesRequiredToBeHealthy=2,ae.healthyTimeout=3e4;class le{constructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[re,ae]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){const t=ae&&ae.isAvailable();let n=t&&!ae.previouslyFailed();if(e.webSocketOnly&&(t||k("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),n=!0),n)this.transports_=[ae];else{const e=this.transports_=[];for(const t of le.ALL_TRANSPORTS)t&&t.isAvailable()&&e.push(t);le.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}le.globalTransportInitialized_=!1;class ce{constructor(e,t,n,i,r,s,o,a,l,c){this.id=e,this.repoInfo_=t,this.applicationId_=n,this.appCheckToken_=i,this.authToken_=r,this.onMessage_=s,this.onReady_=o,this.onDisconnect_=a,this.onKill_=l,this.lastSessionId=c,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=S("c:"+this.id+":"),this.transportManager_=new le(t),this.log_("Connection created"),this.start_()}start_(){const e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;const t=this.connReceiver_(this.conn_),n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout((()=>{this.conn_&&this.conn_.open(t,n)}),Math.floor(0));const i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=U((()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>102400?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>10240?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))}),Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return t=>{e===this.conn_?this.onConnectionLost_(t):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return t=>{2!==this.state_&&(e===this.rx_?this.onPrimaryMessageReceived_(t):e===this.secondaryConn_?this.onSecondaryMessageReceived_(t):this.log_("message on old connection"))}}sendRequest(e){const t={t:"d",d:e};this.sendData_(t)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if("t"in e){const t=e.t;"a"===t?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){const t=R("t",e),n=R("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){const t=R("t",e),n=R("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){const t=R("t",e);if("d"in e){const n=e.d;if("h"===t){const e=Object.assign({},n);this.repoInfo_.isUsingEmulator&&(e.h=this.repoInfo_.host),this.onHandshake_(e)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())}),Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):U((()=>{this.sendPingOnPrimaryIfNecessary_()}),Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){const e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(f.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class he{put(e,t,n,i){}merge(e,t,n,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}class ue{constructor(e){this.allowedEvents_=e,this.listeners_={},(0,s.assert)(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...t){if(Array.isArray(this.listeners_[e])){const n=[...this.listeners_[e]];for(let e=0;et===e)),"Unknown event: "+e)}}class de extends ue{constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||(0,s.isMobileCordova)()||(window.addEventListener("online",(()=>{this.online_||(this.online_=!0,this.trigger("online",!0))}),!1),window.addEventListener("offline",(()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))}),!1))}static getInstance(){return new de}getInitialEvent(e){return(0,s.assert)("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}const pe=32,fe=768;class _e{constructor(e,t){if(void 0===t){this.pieces_=e.split("/");let t=0;for(let e=0;e0&&(this.pieces_[t]=this.pieces_[e],t++);this.pieces_.length=t,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=t}toString(){let e="";for(let t=this.pieceNum_;t=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function ve(e){return e.pieces_.length-e.pieceNum_}function ye(e){let t=e.pieceNum_;return t=e.pieces_.length)return null;const t=[];for(let n=e.pieceNum_;n0&&n.push(e[t])}return new _e(n,0)}function Se(e){return e.pieceNum_>=e.pieces_.length}function Ie(e,t){const n=ge(e),i=ge(t);if(null===n)return t;if(n===i)return Ie(ye(e),ye(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function Te(e,t){const n=be(e,0),i=be(t,0);for(let e=0;eve(t))return!1;for(;nfe)throw new Error(e.errorPrefix_+"has a key path longer than "+fe+" bytes ("+e.byteLength_+").");if(e.parts_.length>pe)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+pe+") or object contains a cycle "+De(e))}function De(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class Ae extends ue{constructor(){let e,t;super(["visible"]),"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(t="visibilitychange",e="hidden"):void 0!==document.mozHidden?(t="mozvisibilitychange",e="mozHidden"):void 0!==document.msHidden?(t="msvisibilitychange",e="msHidden"):void 0!==document.webkitHidden&&(t="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,t&&document.addEventListener(t,(()=>{const t=!document[e];t!==this.visible_&&(this.visible_=t,this.trigger("visible",t))}),!1)}static getInstance(){return new Ae}getInitialEvent(e){return(0,s.assert)("visible"===e,"Unknown event type: "+e),[this.visible_]}}const Re=1e3;class Oe extends he{constructor(e,t,n,i,r,o,a,l){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=n,this.onConnectStatus_=i,this.onServerInfoUpdate_=r,this.authTokenProvider_=o,this.appCheckTokenProvider_=a,this.authOverride_=l,this.id=Oe.nextPersistentConnectionId_++,this.log_=S("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=Re,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!(0,s.isNodeSdk)())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");Ae.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&de.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,n){const i=++this.requestNumber_,r={r:i,a:e,b:t};this.log_((0,s.stringify)(r)),(0,s.assert)(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(r),n&&(this.requestCBHash_[i]=n)}get(e){this.initConnection_();const t=new s.Deferred,n={action:"g",request:{p:e._path.toString(),q:e._queryObject},onComplete:e=>{const n=e.d;"ok"===e.s?t.resolve(n):t.reject(n)}};this.outstandingGets_.push(n),this.outstandingGetCount_++;const i=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(i),t.promise}listen(e,t,n,i){this.initConnection_();const r=e._queryIdentifier,o=e._path.toString();this.log_("Listen called for "+o+" "+r),this.listens.has(o)||this.listens.set(o,new Map),(0,s.assert)(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),(0,s.assert)(!this.listens.get(o).has(r),"listen() called twice for same path/queryId.");const a={onComplete:i,hashFn:t,query:e,tag:n};this.listens.get(o).set(r,a),this.connected_&&this.sendListen_(a)}sendGet_(e){const t=this.outstandingGets_[e];this.sendRequest("g",t.request,(n=>{delete this.outstandingGets_[e],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),t.onComplete&&t.onComplete(n)}))}sendListen_(e){const t=e.query,n=t._path.toString(),i=t._queryIdentifier;this.log_("Listen on "+n+" for "+i);const r={p:n};e.tag&&(r.q=t._queryObject,r.t=e.tag),r.h=e.hashFn(),this.sendRequest("q",r,(r=>{const s=r.d,o=r.s;Oe.warnOnListenWarnings_(s,t);(this.listens.get(n)&&this.listens.get(n).get(i))===e&&(this.log_("listen response",r),"ok"!==o&&this.removeListen_(n,i),e.onComplete&&e.onComplete(o,s))}))}static warnOnListenWarnings_(e,t){if(e&&"object"==typeof e&&(0,s.contains)(e,"w")){const n=(0,s.safeGet)(e,"w");if(Array.isArray(n)&&~n.indexOf("no_index")){const e='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString();k(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${e} at ${n} to your security rules for better performance.`)}}}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},(()=>{})),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){(e&&40===e.length||(0,s.isAdmin)(e))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},(()=>{}))}tryAuth(){if(this.connected_&&this.authToken_){const e=this.authToken_,t=(0,s.isValidFormat)(e)?"auth":"gauth",n={cred:e};null===this.authOverride_?n.noauth=!0:"object"==typeof this.authOverride_&&(n.authvar=this.authOverride_),this.sendRequest(t,n,(t=>{const n=t.s,i=t.d||"error";this.authToken_===e&&("ok"===n?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(n,i))}))}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},(e=>{const t=e.s,n=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)}))}unlisten(e,t){const n=e._path.toString(),i=e._queryIdentifier;this.log_("Unlisten called for "+n+" "+i),(0,s.assert)(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query");this.removeListen_(n,i)&&this.connected_&&this.sendUnlisten_(n,i,e._queryObject,t)}sendUnlisten_(e,t,n,i){this.log_("Unlisten on "+e+" for "+t);const r={p:e};i&&(r.q=n,r.t=i),this.sendRequest("n",r)}onDisconnectPut(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}onDisconnectMerge(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,n,i){const r={p:t,d:n};this.log_("onDisconnect "+e,r),this.sendRequest(e,r,(e=>{i&&setTimeout((()=>{i(e.s,e.d)}),Math.floor(0))}))}put(e,t,n,i){this.putInternal("p",e,t,n,i)}merge(e,t,n,i){this.putInternal("m",e,t,n,i)}putInternal(e,t,n,i,r){this.initConnection_();const s={p:t,d:n};void 0!==r&&(s.h=r),this.outstandingPuts_.push({action:e,request:s,onComplete:i}),this.outstandingPutCount_++;const o=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(o):this.log_("Buffering put: "+t)}sendPut_(e){const t=this.outstandingPuts_[e].action,n=this.outstandingPuts_[e].request,i=this.outstandingPuts_[e].onComplete;this.outstandingPuts_[e].queued=this.connected_,this.sendRequest(t,n,(n=>{this.log_(t+" response",n),delete this.outstandingPuts_[e],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),i&&i(n.s,n.d)}))}reportStats(e){if(this.connected_){const t={c:e};this.log_("reportStats",t),this.sendRequest("s",t,(e=>{if("ok"!==e.s){const t=e.d;this.log_("reportStats","Error sending stats: "+t)}}))}}onDataMessage_(e){if("r"in e){this.log_("from server: "+(0,s.stringify)(e));const t=e.r,n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):I("Unrecognized action received from server: "+(0,s.stringify)(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){(0,s.assert)(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout((()=>{this.establishConnectionTimer_=null,this.establishConnection_()}),Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){if(this.visible_){if(this.lastConnectionEstablishedTime_){(new Date).getTime()-this.lastConnectionEstablishedTime_>3e4&&(this.reconnectDelay_=Re),this.lastConnectionEstablishedTime_=null}}else this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime();const e=(new Date).getTime()-this.lastConnectionAttemptTime_;let t=Math.max(0,this.reconnectDelay_-e);t=Math.random()*t,this.log_("Trying to reconnect in "+t+"ms"),this.scheduleConnect_(t),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)}this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;const e=this.onDataMessage_.bind(this),t=this.onReady_.bind(this),n=this.onRealtimeDisconnect_.bind(this),i=this.id+":"+Oe.nextConnectionId_++,r=this.lastSessionId;let o=!1,a=null;const l=function(){a?a.close():(o=!0,n())},c=function(e){(0,s.assert)(a,"sendRequest call when we're not connected not allowed."),a.sendRequest(e)};this.realtime_={close:l,sendRequest:c};const h=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{const[s,l]=await Promise.all([this.authTokenProvider_.getToken(h),this.appCheckTokenProvider_.getToken(h)]);o?E("getToken() completed but was canceled"):(E("getToken() completed. Creating connection."),this.authToken_=s&&s.accessToken,this.appCheckToken_=l&&l.token,a=new ce(i,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,t,n,(e=>{k(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")}),r))}catch(e){this.log_("Failed to get token: "+e),o||(this.repoInfo_.nodeAdmin&&k(e),l())}}}interrupt(e){E("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){E("Resuming connection for reason: "+e),delete this.interruptReasons_[e],(0,s.isEmpty)(this.interruptReasons_)&&(this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){const t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let e=0;eO(e))).join("$"):"default";const i=this.removeListen_(e,n);i&&i.onComplete&&i.onComplete("permission_denied")}removeListen_(e,t){const n=new _e(e).toString();let i;if(this.listens.has(n)){const e=this.listens.get(n);i=e.get(t),e.delete(t),0===e.size&&this.listens.delete(n)}else i=void 0;return i}onAuthRevoked_(e,t){E("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=3&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){E("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,this.invalidAppCheckTokenCount_>=3&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(const e of this.listens.values())for(const t of e.values())this.sendListen_(t);for(let e=0;e0}peek(){if(0===this.nodeStack_.length)return null;const e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class Ue{constructor(e,t,n,i,r){this.key=e,this.value=t,this.color=null!=n?n:Ue.RED,this.left=null!=i?i:We.EMPTY_NODE,this.right=null!=r?r:We.EMPTY_NODE}copy(e,t,n,i,r){return new Ue(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=i?i:this.left,null!=r?r:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let i=this;const r=n(e,i.key);return i=r<0?i.copy(null,null,null,i.left.insert(e,t,n),null):0===r?i.copy(null,t,null,null,null):i.copy(null,null,null,null,i.right.insert(e,t,n)),i.fixUp_()}removeMin_(){if(this.left.isEmpty())return We.EMPTY_NODE;let e=this;return e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_()}remove(e,t){let n,i;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return We.EMPTY_NODE;i=n.right.min_(),n=n.copy(i.key,i.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}moveRedLeft_(){let e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}moveRedRight_(){let e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}rotateLeft_(){const e=this.copy(null,null,Ue.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){const e=this.copy(null,null,Ue.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){const e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){const e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");const e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}Ue.RED=!0,Ue.BLACK=!1;class We{constructor(e,t=We.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new We(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,Ue.BLACK,null,null))}remove(e){return new We(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Ue.BLACK,null,null))}get(e){let t,n=this.root_;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}getPredecessorKey(e){let t,n=this.root_,i=null;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t){if(n.left.isEmpty())return i?i.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:t>0&&(i=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new Be(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new Be(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new Be(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new Be(this.root_,null,this.comparator_,!0,e)}}function Ve(e,t){return D(e.name,t.name)}function ze(e,t){return D(e,t)}let He;We.EMPTY_NODE=new class{copy(e,t,n,i,r){return this}insert(e,t,n){return new Ue(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}};const $e=function(e){return"number"==typeof e?"number:"+F(e):"string:"+e},Ye=function(e){if(e.isLeafNode()){const t=e.val();(0,s.assert)("string"==typeof t||"number"==typeof t||"object"==typeof t&&(0,s.contains)(t,".sv"),"Priority must be a string or number.")}else(0,s.assert)(e===He||e.isEmpty(),"priority of unexpected type.");(0,s.assert)(e===He||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};let Ke,Ge,Qe;class Xe{constructor(e,t=Xe.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,(0,s.assert)(void 0!==this.value_&&null!==this.value_,"LeafNode shouldn't be created with null/undefined value."),Ye(this.priorityNode_)}static set __childrenNodeConstructor(e){Ke=e}static get __childrenNodeConstructor(){return Ke}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Xe(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Xe.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return Se(e)?this:".priority"===ge(e)?this.priorityNode_:Xe.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Xe.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){const n=ge(e);return null===n?t:t.isEmpty()&&".priority"!==n?this:((0,s.assert)(".priority"!==n||1===ve(e),".priority must be the last token in a path"),this.updateImmediateChild(n,Xe.__childrenNodeConstructor.EMPTY_NODE.updateChild(ye(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+$e(this.priorityNode_.val())+":");const t=typeof this.value_;e+=t+":",e+="number"===t?F(this.value_):this.value_,this.lazyHash_=v(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Xe.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Xe.__childrenNodeConstructor?-1:((0,s.assert)(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){const t=typeof e.value_,n=typeof this.value_,i=Xe.VALUE_TYPE_ORDER.indexOf(t),r=Xe.VALUE_TYPE_ORDER.indexOf(n);return(0,s.assert)(i>=0,"Unknown leaf type: "+t),(0,s.assert)(r>=0,"Unknown leaf type: "+n),i===r?"object"===n?0:this.value_{const r=(0,s.safeGet)(this.indexSet_,i);if((0,s.assert)(r,"Missing index implementation for "+i),n===it){if(r.isDefinedOn(e.node)){const n=[],i=t.getIterator(Le.Wrap);let s=i.getNext();for(;s;)s.name!==e.name&&n.push(s),s=i.getNext();return n.push(e),tt(n,r.getCompare())}return it}{const i=t.get(e.name);let r=n;return i&&(r=r.remove(new Le(e.name,i))),r.insert(e,e.node)}}));return new rt(n,this.indexSet_)}removeFromIndexes(e,t){const n=(0,s.map)(this.indexes_,(n=>{if(n===it)return n;{const i=t.get(e.name);return i?n.remove(new Le(e.name,i)):n}}));return new rt(n,this.indexSet_)}}let st;class ot{constructor(e,t,n){this.children_=e,this.priorityNode_=t,this.indexMap_=n,this.lazyHash_=null,this.priorityNode_&&Ye(this.priorityNode_),this.children_.isEmpty()&&(0,s.assert)(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}static get EMPTY_NODE(){return st||(st=new ot(new We(ze),null,rt.Default))}isLeafNode(){return!1}getPriority(){return this.priorityNode_||st}updatePriority(e){return this.children_.isEmpty()?this:new ot(this.children_,e,this.indexMap_)}getImmediateChild(e){if(".priority"===e)return this.getPriority();{const t=this.children_.get(e);return null===t?st:t}}getChild(e){const t=ge(e);return null===t?this:this.getImmediateChild(t).getChild(ye(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(e,t){if((0,s.assert)(t,"We should always be passing snapshot nodes"),".priority"===e)return this.updatePriority(t);{const n=new Le(e,t);let i,r;t.isEmpty()?(i=this.children_.remove(e),r=this.indexMap_.removeFromIndexes(n,this.children_)):(i=this.children_.insert(e,t),r=this.indexMap_.addToIndexes(n,this.children_));const s=i.isEmpty()?st:this.priorityNode_;return new ot(i,s,r)}}updateChild(e,t){const n=ge(e);if(null===n)return t;{(0,s.assert)(".priority"!==ge(e)||1===ve(e),".priority must be the last token in a path");const i=this.getImmediateChild(n).updateChild(ye(e),t);return this.updateImmediateChild(n,i)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(e){if(this.isEmpty())return null;const t={};let n=0,i=0,r=!0;if(this.forEachChild(Je,((s,o)=>{t[s]=o.val(e),n++,r&&ot.INTEGER_REGEXP_.test(s)?i=Math.max(i,Number(s)):r=!1})),!e&&r&&i<2*n){const e=[];for(const n in t)e[n]=t[n];return e}return e&&!this.getPriority().isEmpty()&&(t[".priority"]=this.getPriority().val()),t}hash(){if(null===this.lazyHash_){let e="";this.getPriority().isEmpty()||(e+="priority:"+$e(this.getPriority().val())+":"),this.forEachChild(Je,((t,n)=>{const i=n.hash();""!==i&&(e+=":"+t+":"+i)})),this.lazyHash_=""===e?"":v(e)}return this.lazyHash_}getPredecessorChildName(e,t,n){const i=this.resolveIndex_(n);if(i){const n=i.getPredecessorKey(new Le(e,t));return n?n.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.minKey();return e&&e.name}return this.children_.minKey()}getFirstChild(e){const t=this.getFirstChildName(e);return t?new Le(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.maxKey();return e&&e.name}return this.children_.maxKey()}getLastChild(e){const t=this.getLastChildName(e);return t?new Le(t,this.children_.get(t)):null}forEachChild(e,t){const n=this.resolveIndex_(e);return n?n.inorderTraversal((e=>t(e.name,e.node))):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getIteratorFrom(e,(e=>e));{const n=this.children_.getIteratorFrom(e.name,Le.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)<0;)n.getNext(),i=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getReverseIteratorFrom(e,(e=>e));{const n=this.children_.getReverseIteratorFrom(e.name,Le.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)>0;)n.getNext(),i=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===at?-1:0}withIndex(e){if(e===je||this.indexMap_.hasIndex(e))return this;{const t=this.indexMap_.addIndex(e,this.children_);return new ot(this.children_,this.priorityNode_,t)}}isIndexed(e){return e===je||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(e.isLeafNode())return!1;{const t=e;if(this.getPriority().equals(t.getPriority())){if(this.children_.count()===t.children_.count()){const e=this.getIterator(Je),n=t.getIterator(Je);let i=e.getNext(),r=n.getNext();for(;i&&r;){if(i.name!==r.name||!i.node.equals(r.node))return!1;i=e.getNext(),r=n.getNext()}return null===i&&null===r}return!1}return!1}}resolveIndex_(e){return e===je?null:this.indexMap_.get(e.toString())}}ot.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;const at=new class extends ot{constructor(){super(new We(ze),ot.EMPTY_NODE,rt.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ot.EMPTY_NODE}isEmpty(){return!1}};Object.defineProperties(Le,{MIN:{value:new Le(N,ot.EMPTY_NODE)},MAX:{value:new Le(P,at)}}),qe.__EMPTY_NODE=ot.EMPTY_NODE,Xe.__childrenNodeConstructor=ot,He=at,function(e){Qe=e}(at);const lt=!0;function ct(e,t=null){if(null===e)return ot.EMPTY_NODE;if("object"==typeof e&&".priority"in e&&(t=e[".priority"]),(0,s.assert)(null===t||"string"==typeof t||"number"==typeof t||"object"==typeof t&&".sv"in t,"Invalid priority type found: "+typeof t),"object"==typeof e&&".value"in e&&null!==e[".value"]&&(e=e[".value"]),"object"!=typeof e||".sv"in e){return new Xe(e,ct(t))}if(e instanceof Array||!lt){let n=ot.EMPTY_NODE;return M(e,((t,i)=>{if((0,s.contains)(e,t)&&"."!==t.substring(0,1)){const e=ct(i);!e.isLeafNode()&&e.isEmpty()||(n=n.updateImmediateChild(t,e))}})),n.updatePriority(ct(t))}{const n=[];let i=!1;if(M(e,((e,t)=>{if("."!==e.substring(0,1)){const r=ct(t);r.isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new Le(e,r)))}})),0===n.length)return ot.EMPTY_NODE;const r=tt(n,Ve,(e=>e.name),ze);if(i){const e=tt(n,Je.getCompare());return new ot(r,ct(t),new rt({".priority":e},{".priority":Je}))}return new ot(r,ct(t),rt.Default)}}!function(e){Ge=e}(ct);class ht extends Me{constructor(e){super(),this.indexPath_=e,(0,s.assert)(!Se(e)&&".priority"!==ge(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){const n=this.extractChild(e.node),i=this.extractChild(t.node),r=n.compareTo(i);return 0===r?D(e.name,t.name):r}makePost(e,t){const n=ct(e),i=ot.EMPTY_NODE.updateChild(this.indexPath_,n);return new Le(t,i)}maxPost(){const e=ot.EMPTY_NODE.updateChild(this.indexPath_,at);return new Le(P,e)}toString(){return be(this.indexPath_,0).join("/")}}const ut=new class extends Me{compare(e,t){const n=e.node.compareTo(t.node);return 0===n?D(e.name,t.name):n}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return Le.MIN}maxPost(){return Le.MAX}makePost(e,t){const n=ct(e);return new Le(t,n)}toString(){return".value"}};function dt(e){return{type:"value",snapshotNode:e}}function pt(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function ft(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function _t(e,t,n){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:n}}class mt{constructor(e){this.index_=e}updateChild(e,t,n,i,r,o){(0,s.assert)(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");const a=e.getImmediateChild(t);return a.getChild(i).equals(n.getChild(i))&&a.isEmpty()===n.isEmpty()?e:(null!=o&&(n.isEmpty()?e.hasChild(t)?o.trackChildChange(ft(t,a)):(0,s.assert)(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?o.trackChildChange(pt(t,n)):o.trackChildChange(_t(t,n,a))),e.isLeafNode()&&n.isEmpty()?e:e.updateImmediateChild(t,n).withIndex(this.index_))}updateFullNode(e,t,n){return null!=n&&(e.isLeafNode()||e.forEachChild(Je,((e,i)=>{t.hasChild(e)||n.trackChildChange(ft(e,i))})),t.isLeafNode()||t.forEachChild(Je,((t,i)=>{if(e.hasChild(t)){const r=e.getImmediateChild(t);r.equals(i)||n.trackChildChange(_t(t,i,r))}else n.trackChildChange(pt(t,i))}))),t.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?ot.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class gt{constructor(e){this.indexedFilter_=new mt(e.getIndex()),this.index_=e.getIndex(),this.startPost_=gt.getStartPost_(e),this.endPost_=gt.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){const t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,n=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&n}updateChild(e,t,n,i,r,s){return this.matches(new Le(t,n))||(n=ot.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,n,i,r,s)}updateFullNode(e,t,n){t.isLeafNode()&&(t=ot.EMPTY_NODE);let i=t.withIndex(this.index_);i=i.updatePriority(ot.EMPTY_NODE);const r=this;return t.forEachChild(Je,((e,t)=>{r.matches(new Le(e,t))||(i=i.updateImmediateChild(e,ot.EMPTY_NODE))})),this.indexedFilter_.updateFullNode(e,i,n)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){const t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){const t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}class vt{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{const t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{const t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new gt(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,n,i,r,s){return this.rangedFilter_.matches(new Le(t,n))||(n=ot.EMPTY_NODE),e.getImmediateChild(t).equals(n)?e:e.numChildren()e(n,t)}else o=this.index_.getCompare();const a=e;(0,s.assert)(a.numChildren()===this.limit_,"");const l=new Le(t,n),c=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(l);if(a.hasChild(t)){const e=a.getImmediateChild(t);let s=i.getChildAfterChild(this.index_,c,this.reverse_);for(;null!=s&&(s.name===t||a.hasChild(s.name));)s=i.getChildAfterChild(this.index_,s,this.reverse_);const u=null==s?1:o(s,l);if(h&&!n.isEmpty()&&u>=0)return null!=r&&r.trackChildChange(_t(t,n,e)),a.updateImmediateChild(t,n);{null!=r&&r.trackChildChange(ft(t,e));const n=a.updateImmediateChild(t,ot.EMPTY_NODE);return null!=s&&this.rangedFilter_.matches(s)?(null!=r&&r.trackChildChange(pt(s.name,s.node)),n.updateImmediateChild(s.name,s.node)):n}}return n.isEmpty()?e:h&&o(c,l)>=0?(null!=r&&(r.trackChildChange(ft(c.name,c.node)),r.trackChildChange(pt(t,n))),a.updateImmediateChild(t,n).updateImmediateChild(c.name,ot.EMPTY_NODE)):e}}class yt{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=Je}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return(0,s.assert)(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return(0,s.assert)(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:N}hasEnd(){return this.endSet_}getIndexEndValue(){return(0,s.assert)(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return(0,s.assert)(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:P}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return(0,s.assert)(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===Je}copy(){const e=new yt;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function wt(e,t,n){const i=e.copy();return i.startSet_=!0,void 0===t&&(t=null),i.indexStartValue_=t,null!=n?(i.startNameSet_=!0,i.indexStartName_=n):(i.startNameSet_=!1,i.indexStartName_=""),i}function bt(e,t,n){const i=e.copy();return i.endSet_=!0,void 0===t&&(t=null),i.indexEndValue_=t,void 0!==n?(i.endNameSet_=!0,i.indexEndName_=n):(i.endNameSet_=!1,i.indexEndName_=""),i}function Ct(e,t){const n=e.copy();return n.index_=t,n}function Et(e){const t={};if(e.isDefault())return t;let n;if(e.index_===Je?n="$priority":e.index_===ut?n="$value":e.index_===je?n="$key":((0,s.assert)(e.index_ instanceof ht,"Unrecognized index type!"),n=e.index_.toString()),t.orderBy=(0,s.stringify)(n),e.startSet_){const n=e.startAfterSet_?"startAfter":"startAt";t[n]=(0,s.stringify)(e.indexStartValue_),e.startNameSet_&&(t[n]+=","+(0,s.stringify)(e.indexStartName_))}if(e.endSet_){const n=e.endBeforeSet_?"endBefore":"endAt";t[n]=(0,s.stringify)(e.indexEndValue_),e.endNameSet_&&(t[n]+=","+(0,s.stringify)(e.indexEndName_))}return e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_),t}function St(e){const t={};if(e.startSet_&&(t.sp=e.indexStartValue_,e.startNameSet_&&(t.sn=e.indexStartName_),t.sin=!e.startAfterSet_),e.endSet_&&(t.ep=e.indexEndValue_,e.endNameSet_&&(t.en=e.indexEndName_),t.ein=!e.endBeforeSet_),e.limitSet_){t.l=e.limit_;let n=e.viewFrom_;""===n&&(n=e.isViewFromLeft()?"l":"r"),t.vf=n}return e.index_!==Je&&(t.i=e.index_.toString()),t}class It extends he{constructor(e,t,n,i){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=n,this.appCheckTokenProvider_=i,this.log_=S("p:rest:"),this.listens_={}}reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:((0,s.assert)(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}listen(e,t,n,i){const r=e._path.toString();this.log_("Listen called for "+r+" "+e._queryIdentifier);const o=It.getListenId_(e,n),a={};this.listens_[o]=a;const l=Et(e._queryParams);this.restRequest_(r+".json",l,((e,t)=>{let l=t;if(404===e&&(l=null,e=null),null===e&&this.onDataUpdate_(r,l,!1,n),(0,s.safeGet)(this.listens_,o)===a){let t;t=e?401===e?"permission_denied":"rest_error:"+e:"ok",i(t,null)}}))}unlisten(e,t){const n=It.getListenId_(e,t);delete this.listens_[n]}get(e){const t=Et(e._queryParams),n=e._path.toString(),i=new s.Deferred;return this.restRequest_(n+".json",t,((e,t)=>{let r=t;404===e&&(r=null,e=null),null===e?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))})),i.promise}refreshAuthToken(e){}restRequest_(e,t={},n){return t.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then((([i,r])=>{i&&i.accessToken&&(t.auth=i.accessToken),r&&r.token&&(t.ac=r.token);const o=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+(0,s.querystring)(t);this.log_("Sending REST request for "+o);const a=new XMLHttpRequest;a.onreadystatechange=()=>{if(n&&4===a.readyState){this.log_("REST Response for "+o+" received. status:",a.status,"response:",a.responseText);let e=null;if(a.status>=200&&a.status<300){try{e=(0,s.jsonEval)(a.responseText)}catch(e){k("Failed to parse JSON response for "+o+": "+a.responseText)}n(null,e)}else 401!==a.status&&404!==a.status&&k("Got unsuccessful REST response for "+o+" Status: "+a.status),n(a.status);n=null}},a.open("GET",o,!0),a.send()}))}}class Tt{constructor(){this.rootNode_=ot.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function kt(){return{value:null,children:new Map}}function xt(e,t,n){if(Se(t))e.value=n,e.children.clear();else if(null!==e.value)e.value=e.value.updateChild(t,n);else{const i=ge(t);e.children.has(i)||e.children.set(i,kt());xt(e.children.get(i),t=ye(t),n)}}function Nt(e,t){if(Se(t))return e.value=null,e.children.clear(),!0;if(null!==e.value){if(e.value.isLeafNode())return!1;{const n=e.value;return e.value=null,n.forEachChild(Je,((t,n)=>{xt(e,new _e(t),n)})),Nt(e,t)}}if(e.children.size>0){const n=ge(t);if(t=ye(t),e.children.has(n)){Nt(e.children.get(n),t)&&e.children.delete(n)}return 0===e.children.size}return!0}function Pt(e,t,n){null!==e.value?n(t,e.value):function(e,t){e.children.forEach(((e,n)=>{t(n,e)}))}(e,((e,i)=>{Pt(i,new _e(t.toString()+"/"+e),n)}))}class Dt{constructor(e){this.collection_=e,this.last_=null}get(){const e=this.collection_.get(),t=Object.assign({},e);return this.last_&&M(this.last_,((e,n)=>{t[e]=t[e]-n})),this.last_=e,t}}class At{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new Dt(e);const n=1e4+2e4*Math.random();U(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){const e=this.statsListener_.get(),t={};let n=!1;M(e,((e,i)=>{i>0&&(0,s.contains)(this.statsToReport_,e)&&(t[e]=i,n=!0)})),n&&this.server_.reportStats(t),U(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}var Rt;function Ot(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}!function(e){e[e.OVERWRITE=0]="OVERWRITE",e[e.MERGE=1]="MERGE",e[e.ACK_USER_WRITE=2]="ACK_USER_WRITE",e[e.LISTEN_COMPLETE=3]="LISTEN_COMPLETE"}(Rt||(Rt={}));class Lt{constructor(e,t,n){this.path=e,this.affectedTree=t,this.revert=n,this.type=Rt.ACK_USER_WRITE,this.source={fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}operationForChild(e){if(Se(this.path)){if(null!=this.affectedTree.value)return(0,s.assert)(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{const t=this.affectedTree.subtree(new _e(e));return new Lt(me(),t,this.revert)}}return(0,s.assert)(ge(this.path)===e,"operationForChild called for unrelated child."),new Lt(ye(this.path),this.affectedTree,this.revert)}}class Mt{constructor(e,t){this.source=e,this.path=t,this.type=Rt.LISTEN_COMPLETE}operationForChild(e){return Se(this.path)?new Mt(this.source,me()):new Mt(this.source,ye(this.path))}}class Ft{constructor(e,t,n){this.source=e,this.path=t,this.snap=n,this.type=Rt.OVERWRITE}operationForChild(e){return Se(this.path)?new Ft(this.source,me(),this.snap.getImmediateChild(e)):new Ft(this.source,ye(this.path),this.snap)}}class qt{constructor(e,t,n){this.source=e,this.path=t,this.children=n,this.type=Rt.MERGE}operationForChild(e){if(Se(this.path)){const t=this.children.subtree(new _e(e));return t.isEmpty()?null:t.value?new Ft(this.source,me(),t.value):new qt(this.source,me(),t)}return(0,s.assert)(ge(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new qt(this.source,ye(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class jt{constructor(e,t,n){this.node_=e,this.fullyInitialized_=t,this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(Se(e))return this.isFullyInitialized()&&!this.filtered_;const t=ge(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Bt{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Ut(e,t,n,i,r,o){const a=i.filter((e=>e.type===n));a.sort(((t,n)=>function(e,t,n){if(null==t.childName||null==n.childName)throw(0,s.assertionError)("Should only compare child_ events.");const i=new Le(t.childName,t.snapshotNode),r=new Le(n.childName,n.snapshotNode);return e.index_.compare(i,r)}(e,t,n))),a.forEach((n=>{const i=function(e,t,n){return"value"===t.type||"child_removed"===t.type||(t.prevName=n.getPredecessorChildName(t.childName,t.snapshotNode,e.index_)),t}(e,n,o);r.forEach((r=>{r.respondsTo(n.type)&&t.push(r.createEvent(i,e.query_))}))}))}function Wt(e,t){return{eventCache:e,serverCache:t}}function Vt(e,t,n,i){return Wt(new jt(t,n,i),e.serverCache)}function zt(e,t,n,i){return Wt(e.eventCache,new jt(t,n,i))}function Ht(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function $t(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Yt;class Kt{constructor(e,t=(()=>(Yt||(Yt=new We(A)),Yt))()){this.value=e,this.children=t}static fromObject(e){let t=new Kt(null);return M(e,((e,n)=>{t=t.set(new _e(e),n)})),t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:me(),value:this.value};if(Se(e))return null;{const n=ge(e),i=this.children.get(n);if(null!==i){const r=i.findRootMostMatchingPathAndValue(ye(e),t);if(null!=r){return{path:Ee(new _e(n),r.path),value:r.value}}return null}return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,(()=>!0))}subtree(e){if(Se(e))return this;{const t=ge(e),n=this.children.get(t);return null!==n?n.subtree(ye(e)):new Kt(null)}}set(e,t){if(Se(e))return new Kt(t,this.children);{const n=ge(e),i=(this.children.get(n)||new Kt(null)).set(ye(e),t),r=this.children.insert(n,i);return new Kt(this.value,r)}}remove(e){if(Se(e))return this.children.isEmpty()?new Kt(null):new Kt(null,this.children);{const t=ge(e),n=this.children.get(t);if(n){const i=n.remove(ye(e));let r;return r=i.isEmpty()?this.children.remove(t):this.children.insert(t,i),null===this.value&&r.isEmpty()?new Kt(null):new Kt(this.value,r)}return this}}get(e){if(Se(e))return this.value;{const t=ge(e),n=this.children.get(t);return n?n.get(ye(e)):null}}setTree(e,t){if(Se(e))return t;{const n=ge(e),i=(this.children.get(n)||new Kt(null)).setTree(ye(e),t);let r;return r=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Kt(this.value,r)}}fold(e){return this.fold_(me(),e)}fold_(e,t){const n={};return this.children.inorderTraversal(((i,r)=>{n[i]=r.fold_(Ee(e,i),t)})),t(e,this.value,n)}findOnPath(e,t){return this.findOnPath_(e,me(),t)}findOnPath_(e,t,n){const i=!!this.value&&n(t,this.value);if(i)return i;if(Se(e))return null;{const i=ge(e),r=this.children.get(i);return r?r.findOnPath_(ye(e),Ee(t,i),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,me(),t)}foreachOnPath_(e,t,n){if(Se(e))return this;{this.value&&n(t,this.value);const i=ge(e),r=this.children.get(i);return r?r.foreachOnPath_(ye(e),Ee(t,i),n):new Kt(null)}}foreach(e){this.foreach_(me(),e)}foreach_(e,t){this.children.inorderTraversal(((n,i)=>{i.foreach_(Ee(e,n),t)})),this.value&&t(e,this.value)}foreachChild(e){this.children.inorderTraversal(((t,n)=>{n.value&&e(t,n.value)}))}}class Gt{constructor(e){this.writeTree_=e}static empty(){return new Gt(new Kt(null))}}function Qt(e,t,n){if(Se(t))return new Gt(new Kt(n));{const i=e.writeTree_.findRootMostValueAndPath(t);if(null!=i){const r=i.path;let s=i.value;const o=Ie(r,t);return s=s.updateChild(o,n),new Gt(e.writeTree_.set(r,s))}{const i=new Kt(n),r=e.writeTree_.setTree(t,i);return new Gt(r)}}}function Xt(e,t,n){let i=e;return M(n,((e,n)=>{i=Qt(i,Ee(t,e),n)})),i}function Jt(e,t){if(Se(t))return Gt.empty();{const n=e.writeTree_.setTree(t,new Kt(null));return new Gt(n)}}function Zt(e,t){return null!=en(e,t)}function en(e,t){const n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(Ie(n.path,t)):null}function tn(e){const t=[],n=e.writeTree_.value;return null!=n?n.isLeafNode()||n.forEachChild(Je,((e,n)=>{t.push(new Le(e,n))})):e.writeTree_.children.inorderTraversal(((e,n)=>{null!=n.value&&t.push(new Le(e,n.value))})),t}function nn(e,t){if(Se(t))return e;{const n=en(e,t);return new Gt(null!=n?new Kt(n):e.writeTree_.subtree(t))}}function rn(e){return e.writeTree_.isEmpty()}function sn(e,t){return on(me(),e.writeTree_,t)}function on(e,t,n){if(null!=t.value)return n.updateChild(e,t.value);{let i=null;return t.children.inorderTraversal(((t,r)=>{".priority"===t?((0,s.assert)(null!==r.value,"Priority writes must always be leaf nodes"),i=r.value):n=on(Ee(e,t),r,n)})),n.getChild(e).isEmpty()||null===i||(n=n.updateChild(Ee(e,".priority"),i)),n}}function an(e,t){return wn(t,e)}function ln(e,t){const n=e.allWrites.findIndex((e=>e.writeId===t));(0,s.assert)(n>=0,"removeWrite called with nonexistent writeId.");const i=e.allWrites[n];e.allWrites.splice(n,1);let r=i.visible,o=!1,a=e.allWrites.length-1;for(;r&&a>=0;){const t=e.allWrites[a];t.visible&&(a>=n&&cn(t,i.path)?r=!1:xe(i.path,t.path)&&(o=!0)),a--}if(r){if(o)return function(e){e.visibleWrites=un(e.allWrites,hn,me()),e.allWrites.length>0?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1}(e),!0;if(i.snap)e.visibleWrites=Jt(e.visibleWrites,i.path);else{M(i.children,(t=>{e.visibleWrites=Jt(e.visibleWrites,Ee(i.path,t))}))}return!0}return!1}function cn(e,t){if(e.snap)return xe(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&xe(Ee(e.path,n),t))return!0;return!1}function hn(e){return e.visible}function un(e,t,n){let i=Gt.empty();for(let r=0;r{i=i.updateImmediateChild(e,t)})),i;if(n){const r=nn(e.visibleWrites,t);return n.forEachChild(Je,((e,t)=>{const n=sn(nn(r,new _e(e)),t);i=i.updateImmediateChild(e,n)})),tn(r).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}return tn(nn(e.visibleWrites,t)).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}(e.writeTree,e.treePath,t)}function _n(e,t,n,i){return function(e,t,n,i,r){(0,s.assert)(i||r,"Either existingEventSnap or existingServerSnap must exist");const o=Ee(t,n);if(Zt(e.visibleWrites,o))return null;{const t=nn(e.visibleWrites,o);return rn(t)?r.getChild(n):sn(t,r.getChild(n))}}(e.writeTree,e.treePath,t,n,i)}function mn(e,t){return function(e,t){return en(e.visibleWrites,t)}(e.writeTree,Ee(e.treePath,t))}function gn(e,t,n,i,r,s){return function(e,t,n,i,r,s,o){let a;const l=nn(e.visibleWrites,t),c=en(l,me());if(null!=c)a=c;else{if(null==n)return[];a=sn(l,n)}if(a=a.withIndex(o),a.isEmpty()||a.isLeafNode())return[];{const e=[],t=o.getCompare(),n=s?a.getReverseIteratorFrom(i,o):a.getIteratorFrom(i,o);let l=n.getNext();for(;l&&e.length{const c=Ee(n,i);xn(t,ge(c))&&(a=kn(e,a,c,l,r,s,o))})),i.foreach(((i,l)=>{const c=Ee(n,i);xn(t,ge(c))||(a=kn(e,a,c,l,r,s,o))})),a}(e,t,c.path,c.children,i,r,o):((0,s.assert)(c.source.fromServer,"Unknown source."),l=c.source.tagged||t.serverCache.isFiltered(),a=Pn(e,t,c.path,c.children,i,r,l,o))}else if(n.type===Rt.ACK_USER_WRITE){const l=n;a=l.revert?function(e,t,n,i,r,o){let a;if(null!=mn(i,n))return t;{const l=new En(i,t,r),c=t.eventCache.getNode();let h;if(Se(n)||".priority"===ge(n)){let n;if(t.serverCache.isFullyInitialized())n=pn(i,$t(t));else{const e=t.serverCache.getNode();(0,s.assert)(e instanceof ot,"serverChildren would be complete if leaf node"),n=fn(i,e)}h=e.filter.updateFullNode(c,n,o)}else{const r=ge(n);let s=vn(i,r,t.serverCache);null==s&&t.serverCache.isCompleteForChild(r)&&(s=c.getImmediateChild(r)),h=null!=s?e.filter.updateChild(c,r,s,ye(n),l,o):t.eventCache.getNode().hasChild(r)?e.filter.updateChild(c,r,ot.EMPTY_NODE,ye(n),l,o):c,h.isEmpty()&&t.serverCache.isFullyInitialized()&&(a=pn(i,$t(t)),a.isLeafNode()&&(h=e.filter.updateFullNode(h,a,o)))}return a=t.serverCache.isFullyInitialized()||null!=mn(i,me()),Vt(t,h,a,e.filter.filtersNodes())}}(e,t,l.path,i,r,o):function(e,t,n,i,r,s,o){if(null!=mn(r,n))return t;const a=t.serverCache.isFiltered(),l=t.serverCache;if(null!=i.value){if(Se(n)&&l.isFullyInitialized()||l.isCompleteForPath(n))return Tn(e,t,n,l.getNode().getChild(n),r,s,a,o);if(Se(n)){let i=new Kt(null);return l.getNode().forEachChild(je,((e,t)=>{i=i.set(new _e(e),t)})),Pn(e,t,n,i,r,s,a,o)}return t}{let c=new Kt(null);return i.foreach(((e,t)=>{const i=Ee(n,e);l.isCompleteForPath(i)&&(c=c.set(e,l.getNode().getChild(i)))})),Pn(e,t,n,c,r,s,a,o)}}(e,t,l.path,l.affectedTree,i,r,o)}else{if(n.type!==Rt.LISTEN_COMPLETE)throw(0,s.assertionError)("Unknown operation type: "+n.type);a=function(e,t,n,i,r){const s=t.serverCache,o=zt(t,s.getNode(),s.isFullyInitialized()||Se(n),s.isFiltered());return In(e,o,n,i,Cn,r)}(e,t,n.path,i,o)}const c=o.getChanges();return function(e,t,n){const i=t.eventCache;if(i.isFullyInitialized()){const r=i.getNode().isLeafNode()||i.getNode().isEmpty(),s=Ht(e);(n.length>0||!e.eventCache.isFullyInitialized()||r&&!i.getNode().equals(s)||!i.getNode().getPriority().equals(s.getPriority()))&&n.push(dt(Ht(t)))}}(t,a,c),{viewCache:a,changes:c}}function In(e,t,n,i,r,o){const a=t.eventCache;if(null!=mn(i,n))return t;{let l,c;if(Se(n))if((0,s.assert)(t.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t.serverCache.isFiltered()){const n=$t(t),r=fn(i,n instanceof ot?n:ot.EMPTY_NODE);l=e.filter.updateFullNode(t.eventCache.getNode(),r,o)}else{const n=pn(i,$t(t));l=e.filter.updateFullNode(t.eventCache.getNode(),n,o)}else{const h=ge(n);if(".priority"===h){(0,s.assert)(1===ve(n),"Can't have a priority with additional path components");const r=a.getNode();c=t.serverCache.getNode();const o=_n(i,n,r,c);l=null!=o?e.filter.updatePriority(r,o):a.getNode()}else{const s=ye(n);let u;if(a.isCompleteForChild(h)){c=t.serverCache.getNode();const e=_n(i,n,a.getNode(),c);u=null!=e?a.getNode().getImmediateChild(h).updateChild(s,e):a.getNode().getImmediateChild(h)}else u=vn(i,h,t.serverCache);l=null!=u?e.filter.updateChild(a.getNode(),h,u,s,r,o):a.getNode()}}return Vt(t,l,a.isFullyInitialized()||Se(n),e.filter.filtersNodes())}}function Tn(e,t,n,i,r,s,o,a){const l=t.serverCache;let c;const h=o?e.filter:e.filter.getIndexedFilter();if(Se(n))c=h.updateFullNode(l.getNode(),i,null);else if(h.filtersNodes()&&!l.isFiltered()){const e=l.getNode().updateChild(n,i);c=h.updateFullNode(l.getNode(),e,null)}else{const e=ge(n);if(!l.isCompleteForPath(n)&&ve(n)>1)return t;const r=ye(n),s=l.getNode().getImmediateChild(e).updateChild(r,i);c=".priority"===e?h.updatePriority(l.getNode(),s):h.updateChild(l.getNode(),e,s,r,Cn,null)}const u=zt(t,c,l.isFullyInitialized()||Se(n),h.filtersNodes());return In(e,u,n,r,new En(r,u,s),a)}function kn(e,t,n,i,r,s,o){const a=t.eventCache;let l,c;const h=new En(r,t,s);if(Se(n))c=e.filter.updateFullNode(t.eventCache.getNode(),i,o),l=Vt(t,c,!0,e.filter.filtersNodes());else{const r=ge(n);if(".priority"===r)c=e.filter.updatePriority(t.eventCache.getNode(),i),l=Vt(t,c,a.isFullyInitialized(),a.isFiltered());else{const s=ye(n),c=a.getNode().getImmediateChild(r);let u;if(Se(s))u=i;else{const e=h.getCompleteChild(r);u=null!=e?".priority"===we(s)&&e.getChild(Ce(s)).isEmpty()?e:e.updateChild(s,i):ot.EMPTY_NODE}if(c.equals(u))l=t;else{l=Vt(t,e.filter.updateChild(a.getNode(),r,u,s,h,o),a.isFullyInitialized(),e.filter.filtersNodes())}}}return l}function xn(e,t){return e.eventCache.isCompleteForChild(t)}function Nn(e,t,n){return n.foreach(((e,n)=>{t=t.updateChild(e,n)})),t}function Pn(e,t,n,i,r,s,o,a){if(t.serverCache.getNode().isEmpty()&&!t.serverCache.isFullyInitialized())return t;let l,c=t;l=Se(n)?i:new Kt(null).setTree(n,i);const h=t.serverCache.getNode();return l.children.inorderTraversal(((n,i)=>{if(h.hasChild(n)){const l=Nn(0,t.serverCache.getNode().getImmediateChild(n),i);c=Tn(e,c,new _e(n),l,r,s,o,a)}})),l.children.inorderTraversal(((n,i)=>{const l=!t.serverCache.isCompleteForChild(n)&&null===i.value;if(!h.hasChild(n)&&!l){const l=Nn(0,t.serverCache.getNode().getImmediateChild(n),i);c=Tn(e,c,new _e(n),l,r,s,o,a)}})),c}class Dn{constructor(e,t){this.query_=e,this.eventRegistrations_=[];const n=this.query_._queryParams,i=new mt(n.getIndex()),r=(s=n).loadsAllData()?new mt(s.getIndex()):s.hasLimit()?new vt(s):new gt(s);var s;this.processor_=function(e){return{filter:e}}(r);const o=t.serverCache,a=t.eventCache,l=i.updateFullNode(ot.EMPTY_NODE,o.getNode(),null),c=r.updateFullNode(ot.EMPTY_NODE,a.getNode(),null),h=new jt(l,o.isFullyInitialized(),i.filtersNodes()),u=new jt(c,a.isFullyInitialized(),r.filtersNodes());this.viewCache_=Wt(u,h),this.eventGenerator_=new Bt(this.query_)}get query(){return this.query_}}function An(e,t){const n=$t(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!Se(t)&&!n.getImmediateChild(ge(t)).isEmpty())?n.getChild(t):null}function Rn(e){return 0===e.eventRegistrations_.length}function On(e,t,n){const i=[];if(n){(0,s.assert)(null==t,"A cancel should cancel all event registrations.");const r=e.query._path;e.eventRegistrations_.forEach((e=>{const t=e.createCancelEvent(n,r);t&&i.push(t)}))}if(t){let n=[];for(let i=0;i{var n;"child_changed"===t.type&&e.index_.indexedValueChanged(t.oldSnap,t.snapshotNode)&&s.push((n=t.childName,{type:"child_moved",snapshotNode:t.snapshotNode,childName:n}))})),Ut(e,r,"child_removed",t,i,n),Ut(e,r,"child_added",t,i,n),Ut(e,r,"child_moved",s,i,n),Ut(e,r,"child_changed",t,i,n),Ut(e,r,"value",t,i,n),r}(e.eventGenerator_,t,n,r)}let Fn,qn;class jn{constructor(){this.views=new Map}}function Bn(e,t,n,i){const r=t.source.queryId;if(null!==r){const o=e.views.get(r);return(0,s.assert)(null!=o,"SyncTree gave us an op for an invalid query."),Ln(o,t,n,i)}{let r=[];for(const s of e.views.values())r=r.concat(Ln(s,t,n,i));return r}}function Un(e,t,n,i,r){const s=t._queryIdentifier,o=e.views.get(s);if(!o){let e=pn(n,r?i:null),s=!1;e?s=!0:i instanceof ot?(e=fn(n,i),s=!1):(e=ot.EMPTY_NODE,s=!1);const o=Wt(new jt(e,s,!1),new jt(i,r,!1));return new Dn(t,o)}return o}function Wn(e,t,n,i,r,s){const o=Un(e,t,i,r,s);return e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,o),function(e,t){e.eventRegistrations_.push(t)}(o,n),function(e,t){const n=e.viewCache_.eventCache,i=[];n.getNode().isLeafNode()||n.getNode().forEachChild(Je,((e,t)=>{i.push(pt(e,t))}));return n.isFullyInitialized()&&i.push(dt(n.getNode())),Mn(e,i,n.getNode(),t)}(o,n)}function Vn(e,t,n,i){const r=t._queryIdentifier,o=[];let a=[];const l=Kn(e);if("default"===r)for(const[t,r]of e.views.entries())a=a.concat(On(r,n,i)),Rn(r)&&(e.views.delete(t),r.query._queryParams.loadsAllData()||o.push(r.query));else{const t=e.views.get(r);t&&(a=a.concat(On(t,n,i)),Rn(t)&&(e.views.delete(r),t.query._queryParams.loadsAllData()||o.push(t.query)))}return l&&!Kn(e)&&o.push(new((0,s.assert)(Fn,"Reference.ts has not been loaded"),Fn)(t._repo,t._path)),{removed:o,events:a}}function zn(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}function Hn(e,t){let n=null;for(const i of e.views.values())n=n||An(i,t);return n}function $n(e,t){if(t._queryParams.loadsAllData())return Gn(e);{const n=t._queryIdentifier;return e.views.get(n)}}function Yn(e,t){return null!=$n(e,t)}function Kn(e){return null!=Gn(e)}function Gn(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Qn=1;class Xn{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Kt(null),this.pendingWriteTree_={visibleWrites:Gt.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Jn(e,t,n,i,r){return function(e,t,n,i,r){(0,s.assert)(i>e.lastWriteId,"Stacking an older write on top of newer ones"),void 0===r&&(r=!0),e.allWrites.push({path:t,snap:n,writeId:i,visible:r}),r&&(e.visibleWrites=Qt(e.visibleWrites,t,n)),e.lastWriteId=i}(e.pendingWriteTree_,t,n,i,r),r?ai(e,new Ft({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,n)):[]}function Zn(e,t,n,i){!function(e,t,n,i){(0,s.assert)(i>e.lastWriteId,"Stacking an older merge on top of newer ones"),e.allWrites.push({path:t,children:n,writeId:i,visible:!0}),e.visibleWrites=Xt(e.visibleWrites,t,n),e.lastWriteId=i}(e.pendingWriteTree_,t,n,i);const r=Kt.fromObject(n);return ai(e,new qt({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,r))}function ei(e,t,n=!1){const i=function(e,t){for(let n=0;n{t=t.set(new _e(e),!0)})),ai(e,new Lt(i.path,t,n))}return[]}function ti(e,t,n){return ai(e,new Ft({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,n))}function ni(e,t,n,i,r=!1){const s=t._path,o=e.syncPointTree_.get(s);let a=[];if(o&&("default"===t._queryIdentifier||Yn(o,t))){const l=Vn(o,t,n,i);0===o.views.size&&(e.syncPointTree_=e.syncPointTree_.remove(s));const c=l.removed;if(a=l.events,!r){const n=-1!==c.findIndex((e=>e._queryParams.loadsAllData())),r=e.syncPointTree_.findOnPath(s,((e,t)=>Kn(t)));if(n&&!r){const t=e.syncPointTree_.subtree(s);if(!t.isEmpty()){const n=function(e){return e.fold(((e,t,n)=>{if(t&&Kn(t)){return[Gn(t)]}{let e=[];return t&&(e=zn(t)),M(n,((t,n)=>{e=e.concat(n)})),e}}))}(t);for(let t=0;t0&&!i)if(n){const n=null;e.listenProvider_.stopListening(mi(t),n)}else c.forEach((t=>{const n=e.queryToTagMap.get(di(t));e.listenProvider_.stopListening(mi(t),n)}))}!function(e,t){for(let n=0;n{const n=Ie(e,r);o=o||Hn(t,n),a=a||Kn(t)}));let l,c=e.syncPointTree_.get(r);if(c?(a=a||Kn(c),o=o||Hn(c,me())):(c=new jn,e.syncPointTree_=e.syncPointTree_.set(r,c)),null!=o)l=!0;else{l=!1,o=ot.EMPTY_NODE;e.syncPointTree_.subtree(r).foreachChild(((e,t)=>{const n=Hn(t,me());n&&(o=o.updateImmediateChild(e,n))}))}const h=Yn(c,t);if(!h&&!t._queryParams.loadsAllData()){const n=di(t);(0,s.assert)(!e.queryToTagMap.has(n),"View does not exist, but we have a tag");const i=Qn++;e.queryToTagMap.set(n,i),e.tagToQueryMap.set(i,n)}let u=Wn(c,t,n,an(e.pendingWriteTree_,r),o,l);if(!h&&!a&&!i){const n=$n(c,t);u=u.concat(function(e,t,n){const i=t._path,r=ui(e,t),o=hi(e,n),a=e.listenProvider_.startListening(mi(t),r,o.hashFn,o.onComplete),l=e.syncPointTree_.subtree(i);if(r)(0,s.assert)(!Kn(l.value),"If we're adding a query, it shouldn't be shadowed");else{const t=l.fold(((e,t,n)=>{if(!Se(e)&&t&&Kn(t))return[Gn(t).query];{let e=[];return t&&(e=e.concat(zn(t).map((e=>e.query)))),M(n,((t,n)=>{e=e.concat(n)})),e}}));for(let n=0;n{const i=Hn(n,Ie(e,t));if(i)return i}));return dn(i,t,r,n,!0)}function oi(e,t){const n=t._path;let i=null;e.syncPointTree_.foreachOnPath(n,((e,t)=>{const r=Ie(e,n);i=i||Hn(t,r)}));let r=e.syncPointTree_.get(n);r?i=i||Hn(r,me()):(r=new jn,e.syncPointTree_=e.syncPointTree_.set(n,r));const s=null!=i,o=s?new jt(i,!0,!1):null;return function(e){return Ht(e.viewCache_)}(Un(r,t,an(e.pendingWriteTree_,t._path),s?o.getNode():ot.EMPTY_NODE,s))}function ai(e,t){return li(t,e.syncPointTree_,null,an(e.pendingWriteTree_,me()))}function li(e,t,n,i){if(Se(e.path))return ci(e,t,n,i);{const r=t.get(me());null==n&&null!=r&&(n=Hn(r,me()));let s=[];const o=ge(e.path),a=e.operationForChild(o),l=t.children.get(o);if(l&&a){const e=n?n.getImmediateChild(o):null,t=yn(i,o);s=s.concat(li(a,l,e,t))}return r&&(s=s.concat(Bn(r,e,i,n))),s}}function ci(e,t,n,i){const r=t.get(me());null==n&&null!=r&&(n=Hn(r,me()));let s=[];return t.children.inorderTraversal(((t,r)=>{const o=n?n.getImmediateChild(t):null,a=yn(i,t),l=e.operationForChild(t);l&&(s=s.concat(ci(l,r,o,a)))})),r&&(s=s.concat(Bn(r,e,i,n))),s}function hi(e,t){const n=t.query,i=ui(e,n);return{hashFn:()=>{const e=function(e){return e.viewCache_.serverCache.getNode()}(t)||ot.EMPTY_NODE;return e.hash()},onComplete:t=>{if("ok"===t)return i?function(e,t,n){const i=pi(e,n);if(i){const n=fi(i),r=n.path,s=n.queryId,o=Ie(r,t);return _i(e,r,new Mt(Ot(s),o))}return[]}(e,n._path,i):function(e,t){return ai(e,new Mt({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t))}(e,n._path);{const i=function(e,t){let n="Unknown Error";"too_big"===e?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?n="Client doesn't have permission to access the desired data.":"unavailable"===e&&(n="The service is unavailable");const i=new Error(e+" at "+t._path.toString()+": "+n);return i.code=e.toUpperCase(),i}(t,n);return ni(e,n,null,i)}}}}function ui(e,t){const n=di(t);return e.queryToTagMap.get(n)}function di(e){return e._path.toString()+"$"+e._queryIdentifier}function pi(e,t){return e.tagToQueryMap.get(t)}function fi(e){const t=e.indexOf("$");return(0,s.assert)(-1!==t&&t{const r=Ii(i,t.getImmediateChild(e),n);r!==i&&(s=s.updateImmediateChild(e,r))})),s}}class Ti{constructor(e="",t=null,n={children:{},childCount:0}){this.name=e,this.parent=t,this.node=n}}function ki(e,t){let n=t instanceof _e?t:new _e(t),i=e,r=ge(n);for(;null!==r;){const e=(0,s.safeGet)(i.node.children,r)||{children:{},childCount:0};i=new Ti(r,i,e),n=ye(n),r=ge(n)}return i}function xi(e){return e.node.value}function Ni(e,t){e.node.value=t,Oi(e)}function Pi(e){return e.node.childCount>0}function Di(e,t){M(e.node.children,((n,i)=>{t(new Ti(n,e,i))}))}function Ai(e,t,n,i){n&&!i&&t(e),Di(e,(e=>{Ai(e,t,!0,i)})),n&&i&&t(e)}function Ri(e){return new _e(null===e.parent?e.name:Ri(e.parent)+"/"+e.name)}function Oi(e){null!==e.parent&&function(e,t,n){const i=function(e){return void 0===xi(e)&&!Pi(e)}(n),r=(0,s.contains)(e.node.children,t);i&&r?(delete e.node.children[t],e.node.childCount--,Oi(e)):i||r||(e.node.children[t]=n.node,e.node.childCount++,Oi(e))}(e.parent,e.name,e)}const Li=/[\[\].#$\/\u0000-\u001F\u007F]/,Mi=/[\[\].#$\u0000-\u001F\u007F]/,Fi=10485760,qi=function(e){return"string"==typeof e&&0!==e.length&&!Li.test(e)},ji=function(e){return"string"==typeof e&&0!==e.length&&!Mi.test(e)},Bi=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!x(e)||e&&"object"==typeof e&&(0,s.contains)(e,".sv")},Ui=function(e,t,n,i){i&&void 0===t||Wi((0,s.errorPrefix)(e,"value"),t,n)},Wi=function(e,t,n){const i=n instanceof _e?new Ne(n,e):n;if(void 0===t)throw new Error(e+"contains undefined "+De(i));if("function"==typeof t)throw new Error(e+"contains a function "+De(i)+" with contents = "+t.toString());if(x(t))throw new Error(e+"contains "+t.toString()+" "+De(i));if("string"==typeof t&&t.length>Fi/3&&(0,s.stringLength)(t)>Fi)throw new Error(e+"contains a string greater than "+Fi+" utf8 bytes "+De(i)+" ('"+t.substring(0,50)+"...')");if(t&&"object"==typeof t){let n=!1,r=!1;if(M(t,((t,o)=>{if(".value"===t)n=!0;else if(".priority"!==t&&".sv"!==t&&(r=!0,!qi(t)))throw new Error(e+" contains an invalid key ("+t+") "+De(i)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');!function(e,t){e.parts_.length>0&&(e.byteLength_+=1),e.parts_.push(t),e.byteLength_+=(0,s.stringLength)(t),Pe(e)}(i,t),Wi(e,o,i),function(e){const t=e.parts_.pop();e.byteLength_-=(0,s.stringLength)(t),e.parts_.length>0&&(e.byteLength_-=1)}(i)})),n&&r)throw new Error(e+' contains ".value" child '+De(i)+" in addition to actual children.")}},Vi=function(e,t,n,i){if(i&&void 0===t)return;const r=(0,s.errorPrefix)(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(r+" must be an object containing the children to replace.");const o=[];M(t,((e,t)=>{const i=new _e(e);if(Wi(r,t,Ee(n,i)),".priority"===we(i)&&!Bi(t))throw new Error(r+"contains an invalid value for '"+i.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(i)})),function(e,t){let n,i;for(n=0;nke(e,t)))}function Zi(e,t,n){Xi(e,n),er(e,(e=>xe(e,t)||xe(t,e)))}function er(e,t){e.recursionDepth_++;let n=!0;for(let i=0;i=0)e.server_=new It(e.repoInfo_,((t,n,i,r)=>{lr(e,t,n,i,r)}),e.authTokenProvider_,e.appCheckProvider_),setTimeout((()=>cr(e,!0)),0);else{if(null!=n){if("object"!=typeof n)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{(0,s.stringify)(n)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}e.persistentConnection_=new Oe(e.repoInfo_,t,((t,n,i,r)=>{lr(e,t,n,i,r)}),(t=>{cr(e,t)}),(t=>{!function(e,t){M(t,((t,n)=>{hr(e,t,n)}))}(e,t)}),e.authTokenProvider_,e.appCheckProvider_,n),e.server_=e.persistentConnection_}e.authTokenProvider_.addTokenChangeListener((t=>{e.server_.refreshAuthToken(t)})),e.appCheckProvider_.addTokenChangeListener((t=>{e.server_.refreshAppCheckToken(t.token)})),e.statsReporter_=function(e,t){const n=e.toString();return ee[n]||(ee[n]=t()),ee[n]}(e.repoInfo_,(()=>new At(e.stats_,e.server_))),e.infoData_=new Tt,e.infoSyncTree_=new Xn({startListening:(t,n,i,r)=>{let s=[];const o=e.infoData_.getNode(t._path);return o.isEmpty()||(s=ti(e.infoSyncTree_,t._path,o),setTimeout((()=>{r("ok")}),0)),s},stopListening:()=>{}}),hr(e,"connected",!1),e.serverSyncTree_=new Xn({startListening:(t,n,i,r)=>(e.server_.listen(t,i,n,((n,i)=>{const s=r(n,i);Zi(e.eventQueue_,t._path,s)})),[]),stopListening:(t,n)=>{e.server_.unlisten(t,n)}})}function or(e){const t=e.infoData_.getNode(new _e(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function ar(e){return yi({timestamp:or(e)})}function lr(e,t,n,i,r){e.dataUpdateCount++;const o=new _e(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let a=[];if(r)if(i){const t=(0,s.map)(n,(e=>ct(e)));a=function(e,t,n,i){const r=pi(e,i);if(r){const i=fi(r),s=i.path,o=i.queryId,a=Ie(s,t),l=Kt.fromObject(n);return _i(e,s,new qt(Ot(o),a,l))}return[]}(e.serverSyncTree_,o,t,r)}else{const t=ct(n);a=ii(e.serverSyncTree_,o,t,r)}else if(i){const t=(0,s.map)(n,(e=>ct(e)));a=function(e,t,n){const i=Kt.fromObject(n);return ai(e,new qt({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,i))}(e.serverSyncTree_,o,t)}else{const t=ct(n);a=ti(e.serverSyncTree_,o,t)}let l=o;a.length>0&&(l=br(e,o)),Zi(e.eventQueue_,l,a)}function cr(e,t){hr(e,"connected",t),!1===t&&function(e){gr(e,"onDisconnectEvents");const t=ar(e),n=kt();Pt(e.onDisconnect_,me(),((i,r)=>{const s=Ei(i,r,e.serverSyncTree_,t);xt(n,i,s)}));let i=[];Pt(n,me(),((t,n)=>{i=i.concat(ti(e.serverSyncTree_,t,n));const r=Tr(e,t);br(e,r)})),e.onDisconnect_=kt(),Zi(e.eventQueue_,me(),i)}(e)}function hr(e,t,n){const i=new _e("/.info/"+t),r=ct(n);e.infoData_.updateSnapshot(i,r);const s=ti(e.infoSyncTree_,i,r);Zi(e.eventQueue_,i,s)}function ur(e){return e.nextWriteId_++}function dr(e,t,n,i,r){gr(e,"set",{path:t.toString(),value:n,priority:i});const s=ar(e),o=ct(n,i),a=si(e.serverSyncTree_,t),l=Si(o,a,s),c=ur(e),h=Jn(e.serverSyncTree_,t,l,c,!0);Xi(e.eventQueue_,h),e.server_.put(t.toString(),o.val(!0),((n,i)=>{const s="ok"===n;s||k("set at "+t+" failed: "+n);const o=ei(e.serverSyncTree_,c,!s);Zi(e.eventQueue_,t,o),vr(e,r,n,i)}));const u=Tr(e,t);br(e,u),Zi(e.eventQueue_,u,[])}function pr(e,t,n){e.server_.onDisconnectCancel(t.toString(),((i,r)=>{"ok"===i&&Nt(e.onDisconnect_,t),vr(e,n,i,r)}))}function fr(e,t,n,i){const r=ct(n);e.server_.onDisconnectPut(t.toString(),r.val(!0),((n,s)=>{"ok"===n&&xt(e.onDisconnect_,t,r),vr(e,i,n,s)}))}function _r(e,t,n){let i;i=".info"===ge(t._path)?ni(e.infoSyncTree_,t,n):ni(e.serverSyncTree_,t,n),Ji(e.eventQueue_,t._path,i)}function mr(e){e.persistentConnection_&&e.persistentConnection_.interrupt(nr)}function gr(e,...t){let n="";e.persistentConnection_&&(n=e.persistentConnection_.id+":"),E(n,...t)}function vr(e,t,n,i){t&&B((()=>{if("ok"===n)t(null);else{const e=(n||"error").toUpperCase();let r=e;i&&(r+=": "+i);const s=new Error(r);s.code=e,t(s)}}))}function yr(e,t,n){return si(e.serverSyncTree_,t,n)||ot.EMPTY_NODE}function wr(e,t=e.transactionQueueTree_){if(t||Ir(e,t),xi(t)){const n=Er(e,t);(0,s.assert)(n.length>0,"Sending zero length transaction queue");n.every((e=>0===e.status))&&function(e,t,n){const i=n.map((e=>e.currentWriteId)),r=yr(e,t,i);let o=r;const a=r.hash();for(let e=0;e{gr(e,"transaction put response",{path:c.toString(),status:i});let r=[];if("ok"===i){const i=[];for(let t=0;tn[t].onComplete(null,!0,n[t].currentOutputSnapshotResolved))),n[t].unwatcher();Ir(e,ki(e.transactionQueueTree_,t)),wr(e,e.transactionQueueTree_),Zi(e.eventQueue_,t,r);for(let e=0;e{wr(e,t)}))}function br(e,t){const n=Cr(e,t),i=Ri(n);return function(e,t,n){if(0===t.length)return;const i=[];let r=[];const o=t.filter((e=>0===e.status)),a=o.map((e=>e.currentWriteId));for(let o=0;o=ir)d=!0,u="maxretry",r=r.concat(ei(e.serverSyncTree_,c.currentWriteId,!0));else{const n=yr(e,c.path,a);c.currentInputSnapshot=n;const i=t[o].update(n.val());if(void 0!==i){Wi("transaction failed: Data returned ",i,c.path);let t=ct(i);"object"==typeof i&&null!=i&&(0,s.contains)(i,".priority")||(t=t.updatePriority(n.getPriority()));const o=c.currentWriteId,l=ar(e),h=Si(t,n,l);c.currentOutputSnapshotRaw=t,c.currentOutputSnapshotResolved=h,c.currentWriteId=ur(e),a.splice(a.indexOf(o),1),r=r.concat(Jn(e.serverSyncTree_,c.path,h,c.currentWriteId,c.applyLocally)),r=r.concat(ei(e.serverSyncTree_,o,!0))}else d=!0,u="nodata",r=r.concat(ei(e.serverSyncTree_,c.currentWriteId,!0))}Zi(e.eventQueue_,n,r),r=[],d&&(t[o].status=2,l=t[o].unwatcher,setTimeout(l,Math.floor(0)),t[o].onComplete&&("nodata"===u?i.push((()=>t[o].onComplete(null,!1,t[o].currentInputSnapshot))):i.push((()=>t[o].onComplete(new Error(u),!1,null)))))}var l;Ir(e,e.transactionQueueTree_);for(let e=0;ee.order-t.order)),n}function Sr(e,t,n){const i=xi(t);if(i)for(let e=0;e{Sr(e,t,n)}))}function Ir(e,t){const n=xi(t);if(n){let e=0;for(let t=0;t0?n:void 0)}Di(t,(t=>{Ir(e,t)}))}function Tr(e,t){const n=Ri(Cr(e,t)),i=ki(e.transactionQueueTree_,t);return function(e,t,n){let i=n?e:e.parent;for(;null!==i;){if(t(i))return!0;i=i.parent}}(i,(t=>{kr(e,t)})),kr(e,i),Ai(i,(t=>{kr(e,t)})),n}function kr(e,t){const n=xi(t);if(n){const i=[];let r=[],o=-1;for(let t=0;t.firebaseio.com instead"),i&&"undefined"!==i||"localhost"===n.domain||T("Cannot parse Firebase url. Please use https://.firebaseio.com"),n.secure||"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&k("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().");const r="ws"===n.scheme||"wss"===n.scheme;return{repoInfo:new Q(n.host,n.secure,i,r,t,"",i!==n.subdomain),path:new _e(n.pathString)}},Nr=function(e){let t="",n="",i="",r="",s="",o=!0,a="https",l=443;if("string"==typeof e){let c=e.indexOf("//");c>=0&&(a=e.substring(0,c-1),e=e.substring(c+2));let h=e.indexOf("/");-1===h&&(h=e.length);let u=e.indexOf("?");-1===u&&(u=e.length),t=e.substring(0,Math.min(h,u)),h0){let i=n[e];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch(e){}t+="/"+i}return t}(e.substring(h,u)));const d=function(e){const t={};"?"===e.charAt(0)&&(e=e.substring(1));for(const n of e.split("&")){if(0===n.length)continue;const i=n.split("=");2===i.length?t[decodeURIComponent(i[0])]=decodeURIComponent(i[1]):k(`Invalid query segment '${n}' in query '${e}'`)}return t}(e.substring(Math.min(e.length,u)));c=t.indexOf(":"),c>=0?(o="https"===a||"wss"===a,l=parseInt(t.substring(c+1),10)):c=t.length;const p=t.slice(0,c);if("localhost"===p.toLowerCase())n="localhost";else if(p.split(".").length<=2)n=p;else{const e=t.indexOf(".");i=t.substring(0,e).toLowerCase(),n=t.substring(e+1),s=i}"ns"in d&&(s=d.ns)}return{host:t,port:l,domain:n,subdomain:i,secure:o,scheme:a,pathString:r,namespace:s}},Pr="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Dr=function(){let e=0;const t=[];return function(n){const i=n===e;let r;e=n;const o=new Array(8);for(r=7;r>=0;r--)o[r]=Pr.charAt(n%64),n=Math.floor(n/64);(0,s.assert)(0===n,"Cannot push at time == 0");let a=o.join("");if(i){for(r=11;r>=0&&63===t[r];r--)t[r]=0;t[r]++}else for(r=0;r<12;r++)t[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)a+=Pr.charAt(t[r]);return(0,s.assert)(20===a.length,"nextPushId: Length should be 20."),a}}();class Ar{constructor(e,t,n,i){this.eventType=e,this.eventRegistration=t,this.snapshot=n,this.prevName=i}getPath(){const e=this.snapshot.ref;return"value"===this.eventType?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+(0,s.stringify)(this.snapshot.exportVal())}}class Rr{constructor(e,t,n){this.eventRegistration=e,this.error=t,this.path=n}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class Or{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return(0,s.assert)(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class Lr{constructor(e,t){this._repo=e,this._path=t}cancel(){const e=new s.Deferred;return pr(this._repo,this._path,e.wrapCallback((()=>{}))),e.promise}remove(){Ki("OnDisconnect.remove",this._path);const e=new s.Deferred;return fr(this._repo,this._path,null,e.wrapCallback((()=>{}))),e.promise}set(e){Ki("OnDisconnect.set",this._path),Ui("OnDisconnect.set",e,this._path,!1);const t=new s.Deferred;return fr(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}setWithPriority(e,t){Ki("OnDisconnect.setWithPriority",this._path),Ui("OnDisconnect.setWithPriority",e,this._path,!1),zi("OnDisconnect.setWithPriority",t,!1);const n=new s.Deferred;return function(e,t,n,i,r){const s=ct(n,i);e.server_.onDisconnectPut(t.toString(),s.val(!0),((n,i)=>{"ok"===n&&xt(e.onDisconnect_,t,s),vr(0,r,n,i)}))}(this._repo,this._path,e,t,n.wrapCallback((()=>{}))),n.promise}update(e){Ki("OnDisconnect.update",this._path),Vi("OnDisconnect.update",e,this._path,!1);const t=new s.Deferred;return function(e,t,n,i){if((0,s.isEmpty)(n))return E("onDisconnect().update() called with empty data. Don't do anything."),void vr(0,i,"ok",void 0);e.server_.onDisconnectMerge(t.toString(),n,((r,s)=>{"ok"===r&&M(n,((n,i)=>{const r=ct(i);xt(e.onDisconnect_,Ee(t,n),r)})),vr(0,i,r,s)}))}(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}}class Mr{constructor(e,t,n,i){this._repo=e,this._path=t,this._queryParams=n,this._orderByCalled=i}get key(){return Se(this._path)?null:we(this._path)}get ref(){return new Br(this._repo,this._path)}get _queryIdentifier(){const e=St(this._queryParams),t=O(e);return"{}"===t?"default":t}get _queryObject(){return St(this._queryParams)}isEqual(e){if(!((e=(0,s.getModularInstance)(e))instanceof Mr))return!1;const t=this._repo===e._repo,n=ke(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return t&&n&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+function(e){let t="";for(let n=e.pieceNum_;ne(new Ur(n,zr(this.ref,t),Je))))}hasChild(e){const t=new _e(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function Wr(e,t){return(e=(0,s.getModularInstance)(e))._checkNotDeleted("ref"),void 0!==t?zr(e._root,t):e._root}function Vr(e,t){(e=(0,s.getModularInstance)(e))._checkNotDeleted("refFromURL");const n=xr(t,e._repo.repoInfo_.nodeAdmin);Gi("refFromURL",n);const i=n.repoInfo;return e._repo.repoInfo_.isCustomHost()||i.host===e._repo.repoInfo_.host||T("refFromURL: Host name does not match the current database: (found "+i.host+" but expected "+e._repo.repoInfo_.host+")"),Wr(e,n.path.toString())}function zr(e,t){return null===ge((e=(0,s.getModularInstance)(e))._path)?Yi("child","path",t,!1):$i("child","path",t,!1),new Br(e._repo,Ee(e._path,t))}function Hr(e){return e=(0,s.getModularInstance)(e),new Lr(e._repo,e._path)}function $r(e,t){e=(0,s.getModularInstance)(e),Ki("push",e._path),Ui("push",t,e._path,!0);const n=or(e._repo),i=Dr(n),r=zr(e,i),o=zr(e,i);let a;return a=null!=t?Kr(o,t).then((()=>o)):Promise.resolve(o),r.then=a.then.bind(a),r.catch=a.then.bind(a,void 0),r}function Yr(e){return Ki("remove",e._path),Kr(e,null)}function Kr(e,t){e=(0,s.getModularInstance)(e),Ki("set",e._path),Ui("set",t,e._path,!1);const n=new s.Deferred;return dr(e._repo,e._path,t,null,n.wrapCallback((()=>{}))),n.promise}function Gr(e,t){e=(0,s.getModularInstance)(e),Ki("setPriority",e._path),zi("setPriority",t,!1);const n=new s.Deferred;return dr(e._repo,Ee(e._path,".priority"),t,null,n.wrapCallback((()=>{}))),n.promise}function Qr(e,t,n){if(Ki("setWithPriority",e._path),Ui("setWithPriority",t,e._path,!1),zi("setWithPriority",n,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";const i=new s.Deferred;return dr(e._repo,e._path,t,n,i.wrapCallback((()=>{}))),i.promise}function Xr(e,t){Vi("update",t,e._path,!1);const n=new s.Deferred;return function(e,t,n,i){gr(e,"update",{path:t.toString(),value:n});let r=!0;const s=ar(e),o={};if(M(n,((n,i)=>{r=!1,o[n]=Ei(Ee(t,n),ct(i),e.serverSyncTree_,s)})),r)E("update() called with empty data. Don't do anything."),vr(0,i,"ok",void 0);else{const r=ur(e),s=Zn(e.serverSyncTree_,t,o,r);Xi(e.eventQueue_,s),e.server_.merge(t.toString(),n,((n,s)=>{const o="ok"===n;o||k("update at "+t+" failed: "+n);const a=ei(e.serverSyncTree_,r,!o),l=a.length>0?br(e,t):t;Zi(e.eventQueue_,l,a),vr(0,i,n,s)})),M(n,(n=>{const i=Tr(e,Ee(t,n));br(e,i)})),Zi(e.eventQueue_,t,[])}}(e._repo,e._path,t,n.wrapCallback((()=>{}))),n.promise}function Jr(e){e=(0,s.getModularInstance)(e);const t=new Or((()=>{})),n=new Zr(t);return function(e,t,n){const i=oi(e.serverSyncTree_,t);return null!=i?Promise.resolve(i):e.server_.get(t).then((i=>{const r=ct(i).withIndex(t._queryParams.getIndex());let s;if(ri(e.serverSyncTree_,t,n,!0),t._queryParams.loadsAllData())s=ti(e.serverSyncTree_,t._path,r);else{const n=ui(e.serverSyncTree_,t);s=ii(e.serverSyncTree_,t._path,r,n)}return Zi(e.eventQueue_,t._path,s),ni(e.serverSyncTree_,t,n,null,!0),r}),(n=>(gr(e,"get for query "+(0,s.stringify)(t)+" failed: "+n),Promise.reject(new Error(n)))))}(e._repo,e,n).then((t=>new Ur(t,new Br(e._repo,e._path),e._queryParams.getIndex())))}class Zr{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){const n=t._queryParams.getIndex();return new Ar("value",this,new Ur(e.snapshotNode,new Br(t._repo,t._path),n))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Rr(this,e,t):null}matches(e){return e instanceof Zr&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class es{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){let t="children_added"===e?"child_added":e;return t="children_removed"===t?"child_removed":t,this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Rr(this,e,t):null}createEvent(e,t){(0,s.assert)(null!=e.childName,"Child events should have a childName.");const n=zr(new Br(t._repo,t._path),e.childName),i=t._queryParams.getIndex();return new Ar(e.type,this,new Ur(e.snapshotNode,n,i),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof es&&(this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)))}hasAnyCallback(){return!!this.callbackContext}}function ts(e,t,n,i,r){let s;if("object"==typeof i&&(s=void 0,r=i),"function"==typeof i&&(s=i),r&&r.onlyOnce){const t=n,i=(n,i)=>{_r(e._repo,e,a),t(n,i)};i.userCallback=n.userCallback,i.context=n.context,n=i}const o=new Or(n,s||void 0),a="value"===t?new Zr(o):new es(t,o);return function(e,t,n){let i;i=".info"===ge(t._path)?ri(e.infoSyncTree_,t,n):ri(e.serverSyncTree_,t,n),Ji(e.eventQueue_,t._path,i)}(e._repo,e,a),()=>_r(e._repo,e,a)}function ns(e,t,n,i){return ts(e,"value",t,n,i)}function is(e,t,n,i){return ts(e,"child_added",t,n,i)}function rs(e,t,n,i){return ts(e,"child_changed",t,n,i)}function ss(e,t,n,i){return ts(e,"child_moved",t,n,i)}function os(e,t,n,i){return ts(e,"child_removed",t,n,i)}function as(e,t,n){let i=null;const r=n?new Or(n):null;"value"===t?i=new Zr(r):t&&(i=new es(t,r)),_r(e._repo,e,i)}class ls{}class cs extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){Ui("endAt",this._value,e._path,!0);const t=bt(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function hs(e,t){return Hi("endAt","key",t,!0),new cs(e,t)}class us extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){Ui("endBefore",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===je||n?bt(e,t,n):bt(e,t,N),i.endBeforeSet_=!0,i}(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function ds(e,t){return Hi("endBefore","key",t,!0),new us(e,t)}class ps extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){Ui("startAt",this._value,e._path,!0);const t=wt(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function fs(e=null,t){return Hi("startAt","key",t,!0),new ps(e,t)}class _s extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){Ui("startAfter",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===je||n?wt(e,t,n):wt(e,t,P),i.startAfterSet_=!0,i}(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function ms(e,t){return Hi("startAfter","key",t,!0),new _s(e,t)}class gs extends ls{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new Mr(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="l",n}(e._queryParams,this._limit),e._orderByCalled)}}function vs(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new gs(e)}class ys extends ls{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new Mr(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="r",n}(e._queryParams,this._limit),e._orderByCalled)}}function ws(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new ys(e)}class bs extends ls{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Fr(e,"orderByChild");const t=new _e(this._path);if(Se(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");const n=new ht(t),i=Ct(e._queryParams,n);return qr(i),new Mr(e._repo,e._path,i,!0)}}function Cs(e){if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return $i("orderByChild","path",e,!1),new bs(e)}class Es extends ls{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){Fr(e,"orderByKey");const t=Ct(e._queryParams,je);return qr(t),new Mr(e._repo,e._path,t,!0)}}function Ss(){return new Es}class Is extends ls{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){Fr(e,"orderByPriority");const t=Ct(e._queryParams,Je);return qr(t),new Mr(e._repo,e._path,t,!0)}}function Ts(){return new Is}class ks extends ls{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){Fr(e,"orderByValue");const t=Ct(e._queryParams,ut);return qr(t),new Mr(e._repo,e._path,t,!0)}}function xs(){return new ks}class Ns extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(Ui("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new cs(this._value,this._key)._apply(new ps(this._value,this._key)._apply(e))}}function Ps(e,t){return Hi("equalTo","key",t,!0),new Ns(e,t)}function Ds(e,...t){let n=(0,s.getModularInstance)(e);for(const e of t)n=e._apply(n);return n}!function(e){(0,s.assert)(!Fn,"__referenceConstructor has already been defined"),Fn=e}(Br),function(e){(0,s.assert)(!qn,"__referenceConstructor has already been defined"),qn=e}(Br);const As="FIREBASE_DATABASE_EMULATOR_HOST",Rs={};let Os=!1;function Ls(e,t,n,i,r){let s=i||e.options.databaseURL;void 0===s&&(e.options.projectId||T("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),E("Using default host for project ",e.options.projectId),s=`${e.options.projectId}-default-rtdb.firebaseio.com`);let o,a,l=xr(s,r),c=l.repoInfo;"undefined"!=typeof process&&(a="MISSING_ENV_VAR"[As]),a?(o=!0,s=`http://${a}?ns=${c.namespace}`,l=xr(s,r),c=l.repoInfo):o=!l.repoInfo.secure;const h=r&&o?new z(z.OWNER):new V(e.name,e.options,t);Gi("Invalid Firebase Database URL",l),Se(l.path)||T("Database URL must point to the root of a Firebase Database (not including a child path).");const u=function(e,t,n,i){let r=Rs[t.name];r||(r={},Rs[t.name]=r);let s=r[e.toURLString()];s&&T("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.");return s=new rr(e,Os,n,i),r[e.toURLString()]=s,s}(c,e,h,new W(e.name,n));return new Ms(u,e)}class Ms{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(sr(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new Br(this._repo,me())),this._rootInternal}_delete(){return null!==this._rootInternal&&(!function(e,t){const n=Rs[t];n&&n[e.key]===e||T(`Database ${t}(${e.repoInfo_}) has already been deleted.`),mr(e),delete n[e.key]}(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&T("Cannot call "+e+" on a deleted database.")}}function Fs(){le.IS_TRANSPORT_INITIALIZED&&k("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function qs(){Fs(),re.forceDisallow()}function js(){Fs(),ae.forceDisallow(),re.forceAllow()}function Bs(e=(0,i.getApp)(),t){const n=(0,i._getProvider)(e,"database").getImmediate({identifier:t});if(!n._instanceStarted){const e=(0,s.getDefaultEmulatorHostnameAndPort)("database");e&&Us(n,...e)}return n}function Us(e,t,n,i={}){(e=(0,s.getModularInstance)(e))._checkNotDeleted("useEmulator"),e._instanceStarted&&T("Cannot call useEmulator() after instance has already been initialized.");const r=e._repoInternal;let o;if(r.repoInfo_.nodeAdmin)i.mockUserToken&&T('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new z(z.OWNER);else if(i.mockUserToken){const t="string"==typeof i.mockUserToken?i.mockUserToken:(0,s.createMockUserToken)(i.mockUserToken,e.app.options.projectId);o=new z(t)}!function(e,t,n,i){e.repoInfo_=new Q(`${t}:${n}`,!1,e.repoInfo_.namespace,e.repoInfo_.webSocketOnly,e.repoInfo_.nodeAdmin,e.repoInfo_.persistenceKey,e.repoInfo_.includeNamespaceInQueryParams,!0),i&&(e.authTokenProvider_=i)}(r,t,n,o)}function Ws(e){(e=(0,s.getModularInstance)(e))._checkNotDeleted("goOffline"),mr(e._repo)}function Vs(e){var t;(e=(0,s.getModularInstance)(e))._checkNotDeleted("goOnline"),(t=e._repo).persistentConnection_&&t.persistentConnection_.resume(nr)}function zs(e,t){C(e,t)}const Hs={".sv":"timestamp"};function $s(){return Hs}function Ys(e){return{".sv":{increment:e}}}class Ks{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function Gs(e,t,n){var i;if(e=(0,s.getModularInstance)(e),Ki("Reference.transaction",e._path),".length"===e.key||".keys"===e.key)throw"Reference.transaction failed: "+e.key+" is a read-only object.";const r=null===(i=null==n?void 0:n.applyLocally)||void 0===i||i,o=new s.Deferred,a=ns(e,(()=>{}));return function(e,t,n,i,r,o){gr(e,"transaction on "+t);const a={path:t,update:n,onComplete:i,status:null,order:g(),applyLocally:o,retryCount:0,unwatcher:r,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},l=yr(e,t,void 0);a.currentInputSnapshot=l;const c=a.update(l.val());if(void 0===c)a.unwatcher(),a.currentOutputSnapshotRaw=null,a.currentOutputSnapshotResolved=null,a.onComplete&&a.onComplete(null,!1,a.currentInputSnapshot);else{Wi("transaction failed: Data returned ",c,a.path),a.status=0;const n=ki(e.transactionQueueTree_,t),i=xi(n)||[];let r;i.push(a),Ni(n,i),"object"==typeof c&&null!==c&&(0,s.contains)(c,".priority")?(r=(0,s.safeGet)(c,".priority"),(0,s.assert)(Bi(r),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):r=(si(e.serverSyncTree_,t)||ot.EMPTY_NODE).getPriority().val();const o=ar(e),h=ct(c,r),u=Si(h,l,o);a.currentOutputSnapshotRaw=h,a.currentOutputSnapshotResolved=u,a.currentWriteId=ur(e);const d=Jn(e.serverSyncTree_,t,u,a.currentWriteId,a.applyLocally);Zi(e.eventQueue_,t,d),wr(e,e.transactionQueueTree_)}}(e._repo,e._path,t,((t,n,i)=>{let r=null;t?o.reject(t):(r=new Ur(i,new Br(e._repo,e._path),Je),o.resolve(new Ks(n,r)))}),a,r),o.promise}Oe.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},Oe.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)};const Qs=function(e){const t=Oe.prototype.put;return Oe.prototype.put=function(n,i,r,s){void 0!==s&&(s=e()),t.call(this,n,i,r,s)},function(){Oe.prototype.put=t}},Xs=function(e){!function(e){Os=e}(e)};function Js({app:e,url:t,version:n,customAuthImpl:i,customAppCheckImpl:s,nodeAdmin:o=!1}){h(n);const a=new r.ComponentContainer("database-standalone"),l=new r.Provider("auth-internal",a);let c;return s&&(c=new r.Provider("app-check-internal",a),c.setComponent(new r.Component("app-check-internal",(()=>s),"PRIVATE"))),l.setComponent(new r.Component("auth-internal",(()=>i),"PRIVATE")),Ls(e,l,c,t,o)}var Zs;h(i.SDK_VERSION),(0,i._registerComponent)(new r.Component("database",((e,{instanceIdentifier:t})=>Ls(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)),"PUBLIC").setMultipleInstances(!0)),(0,i.registerVersion)(a,l,Zs),(0,i.registerVersion)(a,l,"esm2017")},"./node_modules/@firebase/util/dist/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{CONSTANTS:()=>i,DecodeBase64StringError:()=>l,Deferred:()=>w,ErrorFactory:()=>F,FirebaseError:()=>M,MAX_VALUE_MILLIS:()=>ge,RANDOM_FACTOR:()=>ve,Sha1:()=>ne,areCookiesEnabled:()=>L,assert:()=>r,assertionError:()=>s,async:()=>se,base64:()=>a,base64Decode:()=>u,base64Encode:()=>c,base64urlEncodeWithoutPadding:()=>h,calculateBackoffMillis:()=>ye,contains:()=>$,createMockUserToken:()=>b,createSubscribe:()=>ie,decode:()=>U,deepCopy:()=>d,deepEqual:()=>Q,deepExtend:()=>p,errorPrefix:()=>le,extractQuerystring:()=>te,getDefaultAppConfig:()=>v,getDefaultEmulatorHost:()=>m,getDefaultEmulatorHostnameAndPort:()=>g,getDefaults:()=>_,getExperimentalSetting:()=>y,getGlobal:()=>f,getModularInstance:()=>be,getUA:()=>C,isAdmin:()=>H,isBrowser:()=>I,isBrowserExtension:()=>T,isElectron:()=>x,isEmpty:()=>K,isIE:()=>N,isIndexedDBAvailable:()=>R,isMobileCordova:()=>E,isNode:()=>S,isNodeSdk:()=>D,isReactNative:()=>k,isSafari:()=>A,isUWP:()=>P,isValidFormat:()=>z,isValidTimestamp:()=>W,issuedAtTime:()=>V,jsonEval:()=>j,map:()=>G,ordinal:()=>we,promiseWithTimeout:()=>J,querystring:()=>Z,querystringDecode:()=>ee,safeGet:()=>Y,stringLength:()=>pe,stringToByteArray:()=>de,stringify:()=>B,uuidv4:()=>fe,validateArgCount:()=>ae,validateCallback:()=>he,validateContextObject:()=>ue,validateIndexedDBOpenable:()=>O,validateNamespace:()=>ce});const i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},r=function(e,t){if(!e)throw s(t)},s=function(e){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},o=function(e){const t=[];let n=0;for(let i=0;i>6|192,t[n++]=63&r|128):55296==(64512&r)&&i+1>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128)}return t},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let t=0;t>2,h=(3&r)<<4|o>>4;let u=(15&o)<<2|l>>6,d=63&l;a||(d=64,s||(u=64)),i.push(n[c],n[h],n[u],n[d])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(o(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,i=0;for(;n191&&r<224){const s=e[n++];t[i++]=String.fromCharCode((31&r)<<6|63&s)}else if(r>239&&r<365){const s=((7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[i++]=String.fromCharCode(55296+(s>>10)),t[i++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],o=e[n++];t[i++]=String.fromCharCode((15&r)<<12|(63&s)<<6|63&o)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,i=[];for(let t=0;t>4;if(i.push(c),64!==o){const e=s<<4&240|o>>2;if(i.push(e),64!==a){const e=o<<6&192|a;i.push(e)}}}return i},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class l extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const c=function(e){const t=o(e);return a.encodeByteArray(t,!0)},h=function(e){return c(e).replace(/\./g,"")},u=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function d(e){return p(void 0,e)}function p(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const n in t)t.hasOwnProperty(n)&&"__proto__"!==n&&(e[n]=p(e[n],t[n]));return e}function f(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("Unable to locate global object.")}const _=()=>{try{return f().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process)return;const e="MISSING_ENV_VAR".__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&u(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},m=e=>{var t,n;return null===(n=null===(t=_())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]},g=e=>{const t=m(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const i=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),i]:[t.substring(0,n),i]},v=()=>{var e;return null===(e=_())||void 0===e?void 0:e.config},y=e=>{var t;return null===(t=_())||void 0===t?void 0:t[`_${e}`]};class w{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function b(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",i=e.iat||0,r=e.sub||e.user_id;if(!r)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const s=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:i,exp:i+3600,auth_time:i,sub:r,user_id:r,firebase:{sign_in_provider:"custom",identities:{}}},e);return[h(JSON.stringify({alg:"none",type:"JWT"})),h(JSON.stringify(s)),""].join(".")}function C(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function E(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(C())}function S(){var e;const t=null===(e=_())||void 0===e?void 0:e.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(n.g.process)}catch(e){return!1}}function I(){return"object"==typeof self&&self.self===self}function T(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function k(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function x(){return C().indexOf("Electron/")>=0}function N(){const e=C();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}function P(){return C().indexOf("MSAppHost/")>=0}function D(){return!0===i.NODE_CLIENT||!0===i.NODE_ADMIN}function A(){return!S()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function R(){try{return"object"==typeof indexedDB}catch(e){return!1}}function O(){return new Promise(((e,t)=>{try{let n=!0;const i="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(i);r.onsuccess=()=>{r.result.close(),n||self.indexedDB.deleteDatabase(i),e(!0)},r.onupgradeneeded=()=>{n=!1},r.onerror=()=>{var e;t((null===(e=r.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}function L(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class M extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,M.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,F.prototype.create)}}class F{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},i=`${this.service}/${e}`,r=this.errors[e],s=r?function(e,t){return e.replace(q,((e,n)=>{const i=t[n];return null!=i?String(i):`<${n}?>`}))}(r,n):"Error",o=`${this.serviceName}: ${s} (${i}).`;return new M(i,o,n)}}const q=/\{\$([^}]+)}/g;function j(e){return JSON.parse(e)}function B(e){return JSON.stringify(e)}const U=function(e){let t={},n={},i={},r="";try{const s=e.split(".");t=j(u(s[0])||""),n=j(u(s[1])||""),r=s[2],i=n.d||{},delete n.d}catch(e){}return{header:t,claims:n,data:i,signature:r}},W=function(e){const t=U(e).claims,n=Math.floor((new Date).getTime()/1e3);let i=0,r=0;return"object"==typeof t&&(t.hasOwnProperty("nbf")?i=t.nbf:t.hasOwnProperty("iat")&&(i=t.iat),r=t.hasOwnProperty("exp")?t.exp:i+86400),!!n&&!!i&&!!r&&n>=i&&n<=r},V=function(e){const t=U(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null},z=function(e){const t=U(e).claims;return!!t&&"object"==typeof t&&t.hasOwnProperty("iat")},H=function(e){const t=U(e).claims;return"object"==typeof t&&!0===t.admin};function $(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Y(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function K(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function G(e,t,n){const i={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=t.call(n,e[r],r,e));return i}function Q(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);for(const r of n){if(!i.includes(r))return!1;const n=e[r],s=t[r];if(X(n)&&X(s)){if(!Q(n,s))return!1}else if(n!==s)return!1}for(const e of i)if(!n.includes(e))return!1;return!0}function X(e){return null!==e&&"object"==typeof e}function J(e,t=2e3){const n=new w;return setTimeout((()=>n.reject("timeout!")),t),e.then(n.resolve,n.reject),n.promise}function Z(e){const t=[];for(const[n,i]of Object.entries(e))Array.isArray(i)?i.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));return t.length?"&"+t.join("&"):""}function ee(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,i]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(i)}})),t}function te(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class ne{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e>>31)}let i,r,s=this.chain_[0],o=this.chain_[1],a=this.chain_[2],l=this.chain_[3],c=this.chain_[4];for(let e=0;e<80;e++){e<40?e<20?(i=l^o&(a^l),r=1518500249):(i=o^a^l,r=1859775393):e<60?(i=o&a|l&(o|a),r=2400959708):(i=o^a^l,r=3395469782);const t=(s<<5|s>>>27)+i+c+r+n[e]&4294967295;c=l,l=a,a=4294967295&(o<<30|o>>>2),o=s,s=t}this.chain_[0]=this.chain_[0]+s&4294967295,this.chain_[1]=this.chain_[1]+o&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+l&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295}update(e,t){if(null==e)return;void 0===t&&(t=e.length);const n=t-this.blockSize;let i=0;const r=this.buf_;let s=this.inbuf_;for(;i=56;e--)this.buf_[e]=255&t,t/=256;this.compress_(this.buf_);let n=0;for(let t=0;t<5;t++)for(let i=24;i>=0;i-=8)e[n]=this.chain_[t]>>i&255,++n;return e}}function ie(e,t){const n=new re(e,t);return n.subscribe.bind(n)}class re{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let i;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");i=function(e,t){if("object"!=typeof e||null===e)return!1;for(const n of t)if(n in e&&"function"==typeof e[n])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===i.next&&(i.next=oe),void 0===i.error&&(i.error=oe),void 0===i.complete&&(i.complete=oe);const r=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(e){}})),this.observers.push(i),r}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function se(e,t){return(...n)=>{Promise.resolve(!0).then((()=>{e(...n)})).catch((e=>{t&&t(e)}))}}function oe(){}const ae=function(e,t,n,i){let r;if(in&&(r=0===n?"none":"no more than "+n),r){throw new Error(e+" failed: Was called with "+i+(1===i?" argument.":" arguments.")+" Expects "+r+".")}};function le(e,t){return`${e} failed: ${t} argument `}function ce(e,t,n){if((!n||t)&&"string"!=typeof t)throw new Error(le(e,"namespace")+"must be a valid firebase namespace.")}function he(e,t,n,i){if((!i||n)&&"function"!=typeof n)throw new Error(le(e,t)+"must be a valid function.")}function ue(e,t,n,i){if((!i||n)&&("object"!=typeof n||null===n))throw new Error(le(e,t)+"must be a valid context object.")}const de=function(e){const t=[];let n=0;for(let i=0;i=55296&&s<=56319){const t=s-55296;i++,r(i>6|192,t[n++]=63&s|128):s<65536?(t[n++]=s>>12|224,t[n++]=s>>6&63|128,t[n++]=63&s|128):(t[n++]=s>>18|240,t[n++]=s>>12&63|128,t[n++]=s>>6&63|128,t[n++]=63&s|128)}return t},pe=function(e){let t=0;for(let n=0;n=55296&&i<=56319?(t+=4,n++):t+=3}return t},fe=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},_e=1e3,me=2,ge=144e5,ve=.5;function ye(e,t=_e,n=me){const i=t*Math.pow(n,e),r=Math.round(ve*i*(Math.random()-.5)*2);return Math.min(ge,i+r)}function we(e){return Number.isFinite(e)?e+function(e){e=Math.abs(e);const t=e%100;if(t>=10&&t<=20)return"th";const n=e%10;if(1===n)return"st";if(2===n)return"nd";if(3===n)return"rd";return"th"}(e):`${e}`}function be(e){return e&&e._delegate?e._delegate:e}},"./js/main/code-anime/item.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{Item:()=>c});var i=n("./js/main/code-anime/utils.js");function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];this.requestId||(this.requestId=requestAnimationFrame((function(){return e.render(t)})))}},{key:"stopRendering",value:function(){this.requestId&&(window.cancelAnimationFrame(this.requestId),this.requestId=void 0)}},{key:"render",value:function(e){this.requestId=void 0;var t=this.scrollVal.x-window.scrollX,n=this.scrollVal.y-window.scrollY;for(var r in this.renderedStyles.x.current=l.x-(t+this.rect.left),this.renderedStyles.y.current=l.y-(n+this.rect.top),e&&(this.renderedStyles.x.previous=this.renderedStyles.x.current,this.renderedStyles.y.previous=this.renderedStyles.y.current),this.renderedStyles)this.renderedStyles[r].previous=(0,i.lerp)(this.renderedStyles[r].previous,this.renderedStyles[r].current,this.renderedStyles[r].amt);gsap.set(this.DOM.el,{"--x":this.renderedStyles.x.previous,"--y":this.renderedStyles.y.previous}),this.DOM.deco.innerHTML=this.randomString,this.loopRender()}}],t&&s(e.prototype,t),n&&s(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}()},"./js/main/code-anime/utils.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{getMousePos:()=>r,getRandomString:()=>s,lerp:()=>i});var i=function(e,t,n){return(1-n)*e+n*t},r=function(e){return{x:e.clientX,y:e.clientY}},s=function(e){for(var t="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i{"use strict";n.r(t),n.d(t,{default:()=>i});var i=function(){function e(t){void 0===t&&(t={}),this.options=Object.assign({},{el:null,container:document.body,className:"mf-cursor",innerClassName:"mf-cursor-inner",textClassName:"mf-cursor-text",mediaClassName:"mf-cursor-media",mediaBoxClassName:"mf-cursor-media-box",iconSvgClassName:"mf-svgsprite",iconSvgNamePrefix:"-",iconSvgSrc:"",dataAttr:"cursor",hiddenState:"-hidden",textState:"-text",iconState:"-icon",activeState:"-active",mediaState:"-media",stateDetection:{"-pointer":"a,button"},visible:!0,visibleOnState:!1,speed:.55,ease:"expo.out",overwrite:!0,skewing:0,skewingText:2,skewingIcon:2,skewingMedia:2,skewingDelta:.001,skewingDeltaMax:.15,stickDelta:.15,showTimeout:0,hideOnLeave:!0,hideTimeout:300,hideMediaTimeout:300,initialPos:[-window.innerWidth,-window.innerHeight]},t),this.options.visible&&null==t.stateDetection&&(this.options.stateDetection["-hidden"]="iframe"),this.gsap=e.gsap||window.gsap,this.el="string"==typeof this.options.el?document.querySelector(this.options.el):this.options.el,this.container="string"==typeof this.options.container?document.querySelector(this.options.container):this.options.container,this.skewing=this.options.skewing,this.pos={x:this.options.initialPos[0],y:this.options.initialPos[1]},this.vel={x:0,y:0},this.event={},this.events=[],this.init()}e.registerGSAP=function(t){e.gsap=t};var t=e.prototype;return t.init=function(){this.el||this.create(),this.createSetter(),this.bind(),this.render(!0),this.ticker=this.render.bind(this,!1),this.gsap.ticker.add(this.ticker)},t.create=function(){this.el=document.createElement("div"),this.el.className=this.options.className,this.el.classList.add(this.options.hiddenState),this.inner=document.createElement("div"),this.inner.className=this.options.innerClassName,this.text=document.createElement("div"),this.text.className=this.options.textClassName,this.media=document.createElement("div"),this.media.className=this.options.mediaClassName,this.mediaBox=document.createElement("div"),this.mediaBox.className=this.options.mediaBoxClassName,this.media.appendChild(this.mediaBox),this.inner.appendChild(this.media),this.inner.appendChild(this.text),this.el.appendChild(this.inner),this.container.appendChild(this.el)},t.createSetter=function(){this.setter={x:this.gsap.quickSetter(this.el,"x","px"),y:this.gsap.quickSetter(this.el,"y","px"),rotation:this.gsap.quickSetter(this.el,"rotation","deg"),scaleX:this.gsap.quickSetter(this.el,"scaleX"),scaleY:this.gsap.quickSetter(this.el,"scaleY"),wc:this.gsap.quickSetter(this.el,"willChange"),inner:{rotation:this.gsap.quickSetter(this.inner,"rotation","deg")}}},t.bind=function(){var e=this;this.event.mouseleave=function(){return e.hide()},this.event.mouseenter=function(){return e.show()},this.event.mousedown=function(){return e.addState(e.options.activeState)},this.event.mouseup=function(){return e.removeState(e.options.activeState)},this.event.mousemoveOnce=function(){return e.show()},this.event.mousemove=function(t){e.gsap.to(e.pos,{x:e.stick?e.stick.x-(e.stick.x-t.clientX)*e.options.stickDelta:t.clientX,y:e.stick?e.stick.y-(e.stick.y-t.clientY)*e.options.stickDelta:t.clientY,overwrite:e.options.overwrite,ease:e.options.ease,duration:e.visible?e.options.speed:0,onUpdate:function(){return e.vel={x:t.clientX-e.pos.x,y:t.clientY-e.pos.y}}})},this.event.mouseover=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var i in e.options.stateDetection)n.matches(e.options.stateDetection[i])&&e.addState(i);if(e.options.dataAttr){var r=e.getFromDataset(n);r.state&&e.addState(r.state),r.text&&e.setText(r.text),r.icon&&e.setIcon(r.icon),r.img&&e.setImg(r.img),r.video&&e.setVideo(r.video),void 0!==r.show&&e.show(),void 0!==r.stick&&e.setStick(r.stick||n)}}},this.event.mouseout=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var i in e.options.stateDetection)n.matches(e.options.stateDetection[i])&&e.removeState(i);if(e.options.dataAttr){var r=e.getFromDataset(n);r.state&&e.removeState(r.state),r.text&&e.removeText(),r.icon&&e.removeIcon(),r.img&&e.removeImg(),r.video&&e.removeVideo(),void 0!==r.show&&e.hide(),void 0!==r.stick&&e.removeStick()}}},this.options.hideOnLeave&&this.container.addEventListener("mouseleave",this.event.mouseleave,{passive:!0}),this.options.visible&&this.container.addEventListener("mouseenter",this.event.mouseenter,{passive:!0}),this.options.activeState&&(this.container.addEventListener("mousedown",this.event.mousedown,{passive:!0}),this.container.addEventListener("mouseup",this.event.mouseup,{passive:!0})),this.container.addEventListener("mousemove",this.event.mousemove,{passive:!0}),this.options.visible&&this.container.addEventListener("mousemove",this.event.mousemoveOnce,{passive:!0,once:!0}),(this.options.stateDetection||this.options.dataAttr)&&(this.container.addEventListener("mouseover",this.event.mouseover,{passive:!0}),this.container.addEventListener("mouseout",this.event.mouseout,{passive:!0}))},t.render=function(e){if(!0===e||0!==this.vel.y&&0!==this.vel.x){if(this.trigger("render"),this.setter.wc("transform"),this.setter.x(this.pos.x),this.setter.y(this.pos.y),this.skewing){var t=Math.sqrt(Math.pow(this.vel.x,2)+Math.pow(this.vel.y,2)),n=Math.min(t*this.options.skewingDelta,this.options.skewingDeltaMax)*this.skewing,i=180*Math.atan2(this.vel.y,this.vel.x)/Math.PI;this.setter.rotation(i),this.setter.scaleX(1+n),this.setter.scaleY(1-n),this.setter.inner.rotation(-i)}}else this.setter.wc("auto")},t.show=function(){var e=this;this.trigger("show"),clearInterval(this.visibleInt),this.visibleInt=setTimeout((function(){e.el.classList.remove(e.options.hiddenState),e.visible=!0,e.render(!0)}),this.options.showTimeout)},t.hide=function(){var e=this;this.trigger("hide"),clearInterval(this.visibleInt),this.el.classList.add(this.options.hiddenState),this.visibleInt=setTimeout((function(){return e.visible=!1}),this.options.hideTimeout)},t.toggle=function(e){!0===e||!1!==e&&!this.visible?this.show():this.hide()},t.addState=function(e){var t;if(this.trigger("addState",e),e===this.options.hiddenState)return this.hide();(t=this.el.classList).add.apply(t,e.split(" ")),this.options.visibleOnState&&this.show()},t.removeState=function(e){var t;if(this.trigger("removeState",e),e===this.options.hiddenState)return this.show();(t=this.el.classList).remove.apply(t,e.split(" ")),this.options.visibleOnState&&this.el.className===this.options.className&&this.hide()},t.toggleState=function(e,t){!0===t||!1!==t&&!this.el.classList.contains(e)?this.addState(e):this.removeState(e)},t.setSkewing=function(e){this.gsap.to(this,{skewing:e})},t.removeSkewing=function(){this.gsap.to(this,{skewing:this.options.skewing})},t.setStick=function(e){var t=("string"==typeof e?document.querySelector(e):e).getBoundingClientRect();this.stick={y:t.top+t.height/2,x:t.left+t.width/2}},t.removeStick=function(){this.stick=!1},t.setText=function(e){this.text.innerHTML=e,this.addState(this.options.textState),this.setSkewing(this.options.skewingText)},t.removeText=function(){this.removeState(this.options.textState),this.removeSkewing()},t.setIcon=function(e,t){void 0===t&&(t=""),this.text.innerHTML="",this.addState(this.options.iconState),this.setSkewing(this.options.skewingIcon)},t.removeIcon=function(){this.removeState(this.options.iconState),this.removeSkewing()},t.setMedia=function(e){var t=this;clearTimeout(this.mediaInt),e&&(this.mediaBox.innerHTML="",this.mediaBox.appendChild(e)),this.mediaInt=setTimeout((function(){return t.addState(t.options.mediaState)}),20),this.setSkewing(this.options.skewingMedia)},t.removeMedia=function(){var e=this;clearTimeout(this.mediaInt),this.removeState(this.options.mediaState),this.mediaInt=setTimeout((function(){return e.mediaBox.innerHTML=""}),this.options.hideMediaTimeout),this.removeSkewing()},t.setImg=function(e){this.mediaImg||(this.mediaImg=new Image),this.mediaImg.src!==e&&(this.mediaImg.src=e),this.setMedia(this.mediaImg)},t.removeImg=function(){this.removeMedia()},t.setVideo=function(e){this.mediaVideo||(this.mediaVideo=document.createElement("video"),this.mediaVideo.muted=!0,this.mediaVideo.loop=!0,this.mediaVideo.autoplay=!0),this.mediaVideo.src!==e&&(this.mediaVideo.src=e,this.mediaVideo.load()),this.mediaVideo.play(),this.setMedia(this.mediaVideo)},t.removeVideo=function(){this.mediaVideo&&this.mediaVideo.readyState>2&&this.mediaVideo.pause(),this.removeMedia()},t.on=function(e,t){this.events[e]instanceof Array||this.off(e),this.events[e].push(t)},t.off=function(e,t){this.events[e]=t?this.events[e].filter((function(e){return e!==t})):[]},t.trigger=function(e){var t=arguments,n=this;this.events[e]&&this.events[e].forEach((function(e){return e.call.apply(e,[n,n].concat([].slice.call(t,1)))}))},t.getFromDataset=function(e){var t=e.dataset;return{state:t[this.options.dataAttr],show:t[this.options.dataAttr+"Show"],text:t[this.options.dataAttr+"Text"],icon:t[this.options.dataAttr+"Icon"],img:t[this.options.dataAttr+"Img"],video:t[this.options.dataAttr+"Video"],stick:t[this.options.dataAttr+"Stick"]}},t.destroy=function(){this.trigger("destroy"),this.gsap.ticker.remove(this.ticker),this.container.removeEventListener("mouseleave",this.event.mouseleave),this.container.removeEventListener("mouseenter",this.event.mouseenter),this.container.removeEventListener("mousedown",this.event.mousedown),this.container.removeEventListener("mouseup",this.event.mouseup),this.container.removeEventListener("mousemove",this.event.mousemove),this.container.removeEventListener("mousemove",this.event.mousemoveOnce),this.container.removeEventListener("mouseover",this.event.mouseover),this.container.removeEventListener("mouseout",this.event.mouseout),this.el&&(this.container.removeChild(this.el),this.el=null,this.mediaImg=null,this.mediaVideo=null)},e}()},"./node_modules/uuid/dist/esm-browser/native.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});const i={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)}},"./node_modules/uuid/dist/esm-browser/regex.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});const i=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},"./node_modules/uuid/dist/esm-browser/rng.js":(e,t,n)=>{"use strict";let i;n.r(t),n.d(t,{default:()=>s});const r=new Uint8Array(16);function s(){if(!i&&(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!i))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(r)}},"./node_modules/uuid/dist/esm-browser/stringify.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,unsafeStringify:()=>s});var i=n("./node_modules/uuid/dist/esm-browser/validate.js");const r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function s(e,t=0){return r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]}const o=function(e,t=0){const n=s(e,t);if(!(0,i.default)(n))throw TypeError("Stringified UUID is invalid");return n}},"./node_modules/uuid/dist/esm-browser/v4.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var i=n("./node_modules/uuid/dist/esm-browser/native.js"),r=n("./node_modules/uuid/dist/esm-browser/rng.js"),s=n("./node_modules/uuid/dist/esm-browser/stringify.js");const o=function(e,t,n){if(i.default.randomUUID&&!t&&!e)return i.default.randomUUID();const o=(e=e||{}).random||(e.rng||r.default)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return(0,s.unsafeStringify)(o)}},"./node_modules/uuid/dist/esm-browser/validate.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var i=n("./node_modules/uuid/dist/esm-browser/regex.js");const r=function(e){return"string"==typeof e&&i.default.test(e)}},"./node_modules/@firebase/app/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{FirebaseError:()=>s.FirebaseError,SDK_VERSION:()=>x,_DEFAULT_ENTRY_NAME:()=>u,_addComponent:()=>m,_addOrOverwriteComponent:()=>g,_apps:()=>p,_clearComponents:()=>E,_components:()=>_,_getProvider:()=>y,_isFirebaseApp:()=>b,_isFirebaseServerApp:()=>C,_registerComponent:()=>v,_removeServiceInstance:()=>w,_serverApps:()=>f,deleteApp:()=>R,getApp:()=>D,getApps:()=>A,initializeApp:()=>N,initializeServerApp:()=>P,onLog:()=>L,registerVersion:()=>O,setLogLevel:()=>M});var i=n("./node_modules/@firebase/component/dist/esm/index.esm2017.js"),r=n("./node_modules/@firebase/logger/dist/esm/index.esm2017.js"),s=n("./node_modules/@firebase/util/dist/index.esm2017.js"),o=n("./node_modules/idb/build/index.js");class a{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const l="@firebase/app",c="0.10.1",h=new r.Logger("@firebase/app"),u="[DEFAULT]",d={[l]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},p=new Map,f=new Map,_=new Map;function m(e,t){try{e.container.addComponent(t)}catch(n){h.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function g(e,t){e.container.addOrOverwriteComponent(t)}function v(e){const t=e.name;if(_.has(t))return h.debug(`There were multiple attempts to register component ${t}.`),!1;_.set(t,e);for(const t of p.values())m(t,e);for(const t of f.values())m(t,e);return!0}function y(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}function w(e,t,n=u){y(e,t).clearInstance(n)}function b(e){return void 0!==e.options}function C(e){return void 0!==e.settings}function E(){_.clear()}const S={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},I=new s.ErrorFactory("app","Firebase",S);class T{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new i.Component("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw I.create("app-deleted",{appName:this._name})}}class k extends T{constructor(e,t,n,i){const r=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,s={name:n,automaticDataCollectionEnabled:r};if(void 0!==e.apiKey)super(e,s,i);else{super(e.options,s,i)}this._serverConfig=Object.assign({automaticDataCollectionEnabled:r},t),this._finalizationRegistry=new FinalizationRegistry((()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,O(l,c,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){R(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw I.create("server-app-deleted")}}const x="10.11.0";function N(e,t={}){let n=e;if("object"!=typeof t){t={name:t}}const r=Object.assign({name:u,automaticDataCollectionEnabled:!1},t),o=r.name;if("string"!=typeof o||!o)throw I.create("bad-app-name",{appName:String(o)});if(n||(n=(0,s.getDefaultAppConfig)()),!n)throw I.create("no-options");const a=p.get(o);if(a){if((0,s.deepEqual)(n,a.options)&&(0,s.deepEqual)(r,a.config))return a;throw I.create("duplicate-app",{appName:o})}const l=new i.ComponentContainer(o);for(const e of _.values())l.addComponent(e);const c=new T(n,r,l);return p.set(o,c),c}function P(e,t){if((0,s.isBrowser)())throw I.create("invalid-server-app-environment");let n;void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1),n=b(e)?e.options:e;const r=Object.assign(Object.assign({},t),n);void 0!==r.releaseOnDeref&&delete r.releaseOnDeref;if(void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw I.create("finalization-registry-not-supported",{});const o=""+(a=JSON.stringify(r),[...a].reduce(((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0),0));var a;const l=f.get(o);if(l)return l.incRefCount(t.releaseOnDeref),l;const c=new i.ComponentContainer(o);for(const e of _.values())c.addComponent(e);const h=new k(n,t,o,c);return f.set(o,h),h}function D(e=u){const t=p.get(e);if(!t&&e===u&&(0,s.getDefaultAppConfig)())return N();if(!t)throw I.create("no-app",{appName:e});return t}function A(){return Array.from(p.values())}async function R(e){let t=!1;const n=e.name;if(p.has(n))t=!0,p.delete(n);else if(f.has(n)){e.decRefCount()<=0&&(f.delete(n),t=!0)}t&&(await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function O(e,t,n){var r;let s=null!==(r=d[e])&&void 0!==r?r:e;n&&(s+=`-${n}`);const o=s.match(/\s|\//),a=t.match(/\s|\//);if(o||a){const e=[`Unable to register library "${s}" with version "${t}":`];return o&&e.push(`library name "${s}" contains illegal characters (whitespace or "/")`),o&&a&&e.push("and"),a&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void h.warn(e.join(" "))}v(new i.Component(`${s}-version`,(()=>({library:s,version:t})),"VERSION"))}function L(e,t){if(null!==e&&"function"!=typeof e)throw I.create("invalid-log-argument");(0,r.setUserLogHandler)(e,t)}function M(e){(0,r.setLogLevel)(e)}const F="firebase-heartbeat-database",q=1,j="firebase-heartbeat-store";let B=null;function U(){return B||(B=(0,o.openDB)(F,q,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(j)}catch(e){console.warn(e)}}}).catch((e=>{throw I.create("idb-open",{originalErrorMessage:e.message})}))),B}async function W(e,t){try{const n=(await U()).transaction(j,"readwrite"),i=n.objectStore(j);await i.put(t,V(e)),await n.done}catch(e){if(e instanceof s.FirebaseError)h.warn(e.message);else{const t=I.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});h.warn(t.message)}}}function V(e){return`${e.name}!${e.options.appId}`}class z{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new $(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),i=H();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==i&&!this._heartbeatsCache.heartbeats.some((e=>e.date===i)))return this._heartbeatsCache.heartbeats.push({date:i,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=H(),{heartbeatsToSend:n,unsentEntries:i}=function(e,t=1024){const n=[];let i=e.slice();for(const r of e){const e=n.find((e=>e.agent===r.agent));if(e){if(e.dates.push(r.date),Y(n)>t){e.dates.pop();break}}else if(n.push({agent:r.agent,dates:[r.date]}),Y(n)>t){n.pop();break}i=i.slice(1)}return{heartbeatsToSend:n,unsentEntries:i}}(this._heartbeatsCache.heartbeats),r=(0,s.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=t,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function H(){return(new Date).toISOString().substring(0,10)}class ${constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!(0,s.isIndexedDBAvailable)()&&(0,s.validateIndexedDBOpenable)().then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await U()).transaction(j),n=await t.objectStore(j).get(V(e));return await t.done,n}catch(e){if(e instanceof s.FirebaseError)h.warn(e.message);else{const t=I.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});h.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return W(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return W(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Y(e){return(0,s.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:e})).length}var K;K="",v(new i.Component("platform-logger",(e=>new a(e)),"PRIVATE")),v(new i.Component("heartbeat",(e=>new z(e)),"PRIVATE")),O(l,c,K),O(l,c,"esm2017"),O("fire-js","")},"./node_modules/@firebase/component/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{Component:()=>r,ComponentContainer:()=>a,Provider:()=>o});var i=n("./node_modules/@firebase/util/dist/index.esm2017.js");class r{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const s="[DEFAULT]";class o{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new i.Deferred;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(i)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:s})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(e=s){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=s){return this.instances.has(e)}getOptions(e=s){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(e)&&t.resolve(i)}return i}onInit(e,t){var n;const i=this.normalizeInstanceIdentifier(t),r=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;r.add(e),this.onInitCallbacks.set(i,r);const s=this.instances.get(i);return s&&e(s,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const i of n)try{i(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===s?void 0:i),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var i;return n||null}normalizeInstanceIdentifier(e=s){return this.component?this.component.multipleInstances?e:s:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class a{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new o(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}},"./node_modules/@firebase/logger/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{LogLevel:()=>r,Logger:()=>c,setLogLevel:()=>h,setUserLogHandler:()=>u});const i=[];var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const s={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},o=r.INFO,a={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},l=(e,t,...n)=>{if(t{t.setLogLevel(e)}))}function u(e,t){for(const n of i){let i=null;t&&t.level&&(i=s[t.level]),n.userLogHandler=null===e?null:(t,n,...s)=>{const o=s.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");n>=(null!=i?i:t.logLevel)&&e({level:r[n].toLowerCase(),message:o,args:s,type:t.name})}}}},"./node_modules/firebase/app/dist/esm/index.esm.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{FirebaseError:()=>i.FirebaseError,SDK_VERSION:()=>i.SDK_VERSION,_DEFAULT_ENTRY_NAME:()=>i._DEFAULT_ENTRY_NAME,_addComponent:()=>i._addComponent,_addOrOverwriteComponent:()=>i._addOrOverwriteComponent,_apps:()=>i._apps,_clearComponents:()=>i._clearComponents,_components:()=>i._components,_getProvider:()=>i._getProvider,_isFirebaseApp:()=>i._isFirebaseApp,_isFirebaseServerApp:()=>i._isFirebaseServerApp,_registerComponent:()=>i._registerComponent,_removeServiceInstance:()=>i._removeServiceInstance,_serverApps:()=>i._serverApps,deleteApp:()=>i.deleteApp,getApp:()=>i.getApp,getApps:()=>i.getApps,initializeApp:()=>i.initializeApp,initializeServerApp:()=>i.initializeServerApp,onLog:()=>i.onLog,registerVersion:()=>i.registerVersion,setLogLevel:()=>i.setLogLevel});var i=n("./node_modules/@firebase/app/dist/esm/index.esm2017.js");(0,i.registerVersion)("firebase","10.11.0","app")},"./node_modules/firebase/database/dist/esm/index.esm.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{DataSnapshot:()=>i.DataSnapshot,Database:()=>i.Database,OnDisconnect:()=>i.OnDisconnect,QueryConstraint:()=>i.QueryConstraint,TransactionResult:()=>i.TransactionResult,_QueryImpl:()=>i._QueryImpl,_QueryParams:()=>i._QueryParams,_ReferenceImpl:()=>i._ReferenceImpl,_TEST_ACCESS_forceRestClient:()=>i._TEST_ACCESS_forceRestClient,_TEST_ACCESS_hijackHash:()=>i._TEST_ACCESS_hijackHash,_initStandalone:()=>i._initStandalone,_repoManagerDatabaseFromApp:()=>i._repoManagerDatabaseFromApp,_setSDKVersion:()=>i._setSDKVersion,_validatePathString:()=>i._validatePathString,_validateWritablePath:()=>i._validateWritablePath,child:()=>i.child,connectDatabaseEmulator:()=>i.connectDatabaseEmulator,enableLogging:()=>i.enableLogging,endAt:()=>i.endAt,endBefore:()=>i.endBefore,equalTo:()=>i.equalTo,forceLongPolling:()=>i.forceLongPolling,forceWebSockets:()=>i.forceWebSockets,get:()=>i.get,getDatabase:()=>i.getDatabase,goOffline:()=>i.goOffline,goOnline:()=>i.goOnline,increment:()=>i.increment,limitToFirst:()=>i.limitToFirst,limitToLast:()=>i.limitToLast,off:()=>i.off,onChildAdded:()=>i.onChildAdded,onChildChanged:()=>i.onChildChanged,onChildMoved:()=>i.onChildMoved,onChildRemoved:()=>i.onChildRemoved,onDisconnect:()=>i.onDisconnect,onValue:()=>i.onValue,orderByChild:()=>i.orderByChild,orderByKey:()=>i.orderByKey,orderByPriority:()=>i.orderByPriority,orderByValue:()=>i.orderByValue,push:()=>i.push,query:()=>i.query,ref:()=>i.ref,refFromURL:()=>i.refFromURL,remove:()=>i.remove,runTransaction:()=>i.runTransaction,serverTimestamp:()=>i.serverTimestamp,set:()=>i.set,setPriority:()=>i.setPriority,setWithPriority:()=>i.setWithPriority,startAfter:()=>i.startAfter,startAt:()=>i.startAt,update:()=>i.update});var i=n("./node_modules/@firebase/database/dist/index.esm2017.js")},"./node_modules/idb/build/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{deleteDB:()=>s,openDB:()=>r,unwrap:()=>i.u,wrap:()=>i.w});var i=n("./node_modules/idb/build/wrap-idb-value.js");function r(e,t,{blocked:n,upgrade:r,blocking:s,terminated:o}={}){const a=indexedDB.open(e,t),l=(0,i.w)(a);return r&&a.addEventListener("upgradeneeded",(e=>{r((0,i.w)(a.result),e.oldVersion,e.newVersion,(0,i.w)(a.transaction),e)})),n&&a.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),l.then((e=>{o&&e.addEventListener("close",(()=>o())),s&&e.addEventListener("versionchange",(e=>s(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),l}function s(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),(0,i.w)(n).then((()=>{}))}const o=["get","getKey","getAll","getAllKeys","count"],a=["put","add","delete","clear"],l=new Map;function c(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(l.get(t))return l.get(t);const n=t.replace(/FromIndex$/,""),i=t!==n,r=a.includes(n);if(!(n in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!o.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,r?"readwrite":"readonly");let o=s.store;return i&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),r&&s.done]))[0]};return l.set(t,s),s}(0,i.r)((e=>({...e,get:(t,n,i)=>c(t,n)||e.get(t,n,i),has:(t,n)=>!!c(t,n)||e.has(t,n)})))},"./node_modules/idb/build/wrap-idb-value.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{a:()=>h,i:()=>i,r:()=>d,u:()=>m,w:()=>_});const i=(e,t)=>t.some((t=>e instanceof t));let r,s;const o=new WeakMap,a=new WeakMap,l=new WeakMap,c=new WeakMap,h=new WeakMap;let u={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return a.get(e);if("objectStoreNames"===t)return e.objectStoreNames||l.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return _(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){u=e(u)}function p(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(s||(s=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(m(this),t),_(o.get(this))}:function(...t){return _(e.apply(m(this),t))}:function(t,...n){const i=e.call(m(this),t,...n);return l.set(i,t.sort?t.sort():[t]),_(i)}}function f(e){return"function"==typeof e?p(e):(e instanceof IDBTransaction&&function(e){if(a.has(e))return;const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("complete",r),e.removeEventListener("error",s),e.removeEventListener("abort",s)},r=()=>{t(),i()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",r),e.addEventListener("error",s),e.addEventListener("abort",s)}));a.set(e,t)}(e),i(e,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,u):e)}function _(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("success",r),e.removeEventListener("error",s)},r=()=>{t(_(e.result)),i()},s=()=>{n(e.error),i()};e.addEventListener("success",r),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&o.set(t,e)})).catch((()=>{})),h.set(t,e),t}(e);if(c.has(e))return c.get(e);const t=f(e);return t!==e&&(c.set(e,t),h.set(t,e)),t}const m=e=>h.get(e)}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";n.r(i);var e=n("./node_modules/mouse-follower/dist/index.module.js"),t=n("./node_modules/firebase/app/dist/esm/index.esm.js"),r=n("./node_modules/firebase/database/dist/esm/index.esm.js"),s=n("./node_modules/lozad/dist/lozad.min.js"),o=n.n(s),a=n("./node_modules/uuid/dist/esm-browser/v4.js"),l=n("./js/main/code-anime/item.js");function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n767&&_(),window.addEventListener("resize",_),gsap.registerPlugin(ScrollTrigger),gsap.registerPlugin(ScrollToPlugin),gsap.registerPlugin(SplitText);var m=h(".hero-largelogo");new SplitText(m,{type:"words",wordsClass:"hero-words"});u(".split-chars").forEach((function(e){new SplitText(e,{type:"chars",charsClass:"otherchars"})}));var g=u(".hero-words"),v=h(".below-line"),y=(h(".parallax-hero"),h(".hero-image"));document.addEventListener("DOMContentLoaded",(function(){gsap.timeline({defaults:{ease:"expo.out",delay:.5}}).addLabel("start").fromTo(v,{width:0},{duration:1.75,width:"100%",stagger:.095},"start").fromTo(g,{y:"110%"},{delay:0,duration:2.3,y:"0",stagger:.17,ease:"expo.inOut"},"start+=0.28").fromTo(y,{width:0},{width:"100%",duration:1.5,ease:"expo.inOut",transformOrigin:"50% 50% 0"},"start+=0.7"),u(".slide").forEach((function(e,t){var n=e.querySelector(".parallax-image");function i(){gsap.fromTo(n,{y:innerWidth>767?"-60vh":"-30vh"},{y:innerWidth>767?"60vh":"30vh",scrollTrigger:{trigger:e,scrub:!0,start:"top bottom",end:"bottom top",markers:!1},ease:"none"})}i(),window.addEventListener("resize",i)})),setTimeout((function(){gsap.to(window,{duration:2,scrollTo:{y:"nav"},ease:"power2.inOut"})}),3e3)})),u("[line-trigger]").forEach((function(e){var t=e.getAttribute("line-trigger"),n=function(e){var t=gsap.timeline({defaults:{duration:3,ease:"power3.out"}});return t.fromTo(e,{scaleX:0,opacity:0,transformOrigin:"left left"},{scaleX:1,opacity:1}),t}(e);ScrollTrigger.create({trigger:t,start:"top 92%",animation:n,onEnter:function(){return n.play()},onLeaveBack:function(){return n.reverse({duration:6.5})}})})),document.addEventListener("DOMContentLoaded",(function(){var e=h("#toTop");function t(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}t(),window.addEventListener("scroll",t),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".hero-main"},ease:function(e){return Math.min(1,1.001-Math.pow(2,-10*e))}})}))})),document.addEventListener("DOMContentLoaded",(function(){function t(){if(innerWidth>767)new e.default}t(),window.addEventListener("res",t)})),document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(".col__content-txt").forEach((function(e){var t=e.querySelector(".details-content"),n=e.querySelector("summary");gsap.set(t,{height:0,overflow:"hidden"}),n.addEventListener("click",(function(n){var i;e.hasAttribute("open")?gsap.to(t,{height:0,duration:.5,onComplete:function(){e.removeAttribute("open")}}):(i=t.scrollHeight,e.setAttribute("open",""),gsap.fromTo(t,{height:0},{height:i,duration:.5})),n.preventDefault()}))}));var e=document.querySelectorAll("details");e.forEach((function(t){t.addEventListener("click",(function(n){e.forEach((function(e){e!=t&&e.removeAttribute("open")}))}))}))}));var w,b=h(".c-elephant_himself"),C=h(".elephant-boundary"),E=(new e.default({el:b,container:C,speed:22.5,hideTimeout:3e4}),h(".ourservices")),S=new e.default;E.addEventListener("mouseenter",(function(){S.setImg("./../../assets/images/peanut.webp")})),E.addEventListener("mouseleave",(function(){S.removeImg()})),document.addEventListener("DOMContentLoaded",(function(){gsap.registerPlugin(ScrollTrigger);var e=gsap.utils.toArray(".white-section"),t=h(".top-arrow-wrapper"),n=h(".top-arrow-path"),i=h(".menu-name"),r=u(".menu-dot-line");function s(){n.style.stroke="var(--color-bg)",t.style.fill="var(--color-black)",r.forEach((function(e){e.style.background="var(--color-black)"})),i.style.color="var(--color-black)"}function o(){n.style.stroke="var(--color-black)",t.style.fill="var(--color-bg)",r.forEach((function(e){e.style.background="var(--color-bg)"})),i.style.color="var(--color-bg)"}e.forEach((function(e,t){gsap.timeline({scrollTrigger:{trigger:e,id:t+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,onEnter:function(){return o()},onLeave:function(){return s()},onEnterBack:function(){return o()},onLeaveBack:function(){return s()}}})}))})),(w=u(".grid-itemz > .grid__item-img"),function(e){if(Array.isArray(e))return c(e)}(w)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(w)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(w)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).forEach((function(e){return new l.Item(e)}));var I=h(".global-video"),T=h("#video-background");gsap.registerPlugin(ScrollTrigger),gsap.timeline({scrollTrigger:{trigger:I,start:"top bottom",end:"top top",scrub:!0,markers:!1,toggleActions:"play none none reverse"}}).fromTo(T,{scaleX:.9,borderRadius:"45px"},{scaleX:1,borderRadius:"0px"});gsap.timeline({scrollTrigger:{trigger:T,start:"top bottom",end:"bottom top",scrub:!0,onEnter:function(){T.paused&&T.play().catch((function(e){"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeave:function(){T.paused||T.pause()},onEnterBack:function(){T.paused&&T.play().catch((function(e){"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeaveBack:function(){T.paused||T.pause()}}});var k=T.play();void 0!==k&&k.then((function(e){})).catch((function(e){}));var x=(0,t.initializeApp)({apiKey:"AIzaSyCd-ad_ExUqBU-Z-kn_U_6BR4gfKoydHx4",authDomain:"hypercritical-c0acf.firebaseapp.com",databaseURL:"https://hypercritical-c0acf-default-rtdb.firebaseio.com",projectId:"hypercritical-c0acf",storageBucket:"hypercritical-c0acf.appspot.com",messagingSenderId:"615546380060",appId:"1:615546380060:web:a124c49f5be5b5142ca4d9",measurementId:"G-TDXEWBCNFH"}),N=(0,r.getDatabase)(x);document.getElementById("consultationForm").addEventListener("submit",(function(e){e.preventDefault();var t,n=document.getElementById("message").value,i=document.getElementById("email").value,s=document.getElementById("yourname").value,o=(t=(0,a.default)().substring(0,6),"INV-".concat(t)),l="";document.getElementById("Web-Design").checked&&(l+="Web Design, "),document.getElementById("SEO").checked&&(l+="SEO, "),document.getElementById("Development").checked&&(l+="Development, "),document.getElementById("Other").checked&&(l+="Other, "),l=l.slice(0,-2);for(var c="",h=document.getElementsByName("priceGroup"),u=0;u{var e={"./node_modules/@firebase/database/dist/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{DataSnapshot:()=>Wr,Database:()=>Ms,OnDisconnect:()=>Lr,QueryConstraint:()=>ls,TransactionResult:()=>Ks,_QueryImpl:()=>Mr,_QueryParams:()=>yt,_ReferenceImpl:()=>Br,_TEST_ACCESS_forceRestClient:()=>Xs,_TEST_ACCESS_hijackHash:()=>Qs,_initStandalone:()=>Js,_repoManagerDatabaseFromApp:()=>Ls,_setSDKVersion:()=>h,_validatePathString:()=>$i,_validateWritablePath:()=>Ki,child:()=>zr,connectDatabaseEmulator:()=>Ws,enableLogging:()=>zs,endAt:()=>hs,endBefore:()=>ds,equalTo:()=>Ps,forceLongPolling:()=>js,forceWebSockets:()=>qs,get:()=>Jr,getDatabase:()=>Bs,goOffline:()=>Us,goOnline:()=>Vs,increment:()=>Ys,limitToFirst:()=>vs,limitToLast:()=>ws,off:()=>as,onChildAdded:()=>is,onChildChanged:()=>rs,onChildMoved:()=>ss,onChildRemoved:()=>os,onDisconnect:()=>Hr,onValue:()=>ns,orderByChild:()=>Cs,orderByKey:()=>Ss,orderByPriority:()=>Ts,orderByValue:()=>xs,push:()=>$r,query:()=>Ds,ref:()=>Ur,refFromURL:()=>Vr,remove:()=>Yr,runTransaction:()=>Gs,serverTimestamp:()=>$s,set:()=>Kr,setPriority:()=>Gr,setWithPriority:()=>Qr,startAfter:()=>ms,startAt:()=>fs,update:()=>Xr});var i=n("./node_modules/@firebase/app/dist/esm/index.esm2017.js"),r=n("./node_modules/@firebase/component/dist/esm/index.esm2017.js"),s=n("./node_modules/@firebase/util/dist/index.esm2017.js"),o=n("./node_modules/@firebase/logger/dist/esm/index.esm2017.js");const a="@firebase/database",l="1.0.4";let c="";function h(e){c=e}class u{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),(0,s.stringify)(t))}get(e){const t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:(0,s.jsonEval)(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class d{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return(0,s.contains)(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}const p=function(e){try{if("undefined"!=typeof window&&void 0!==window[e]){const t=window[e];return t.setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new u(t)}}catch(e){}return new d},f=p("localStorage"),_=p("sessionStorage"),m=new o.Logger("@firebase/database"),g=function(){let e=1;return function(){return e++}}(),v=function(e){const t=(0,s.stringToByteArray)(e),n=new s.Sha1;n.update(t);const i=n.digest();return s.base64.encodeByteArray(i)},y=function(...e){let t="";for(let n=0;nn?i.push(e.substring(r,n)):i.push(e.substring(r,r+t));return i};function M(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}const F=function(e){(0,s.assert)(!x(e),"Invalid JSON number");const t=1023;let n,i,r,o,a;0===e?(i=0,r=0,n=1/e==-1/0?1:0):(n=e<0,(e=Math.abs(e))>=Math.pow(2,-1022)?(o=Math.min(Math.floor(Math.log(e)/Math.LN2),t),i=o+t,r=Math.round(e*Math.pow(2,52-o)-Math.pow(2,52))):(i=0,r=Math.round(e/Math.pow(2,-1074))));const l=[];for(a=52;a;a-=1)l.push(r%2?1:0),r=Math.floor(r/2);for(a=11;a;a-=1)l.push(i%2?1:0),i=Math.floor(i/2);l.push(n?1:0),l.reverse();const c=l.join("");let h="";for(a=0;a<64;a+=8){let e=parseInt(c.substr(a,8),2).toString(16);1===e.length&&(e="0"+e),h+=e}return h.toLowerCase()};const q=new RegExp("^-?(0*)\\d{1,10}$"),j=function(e){if(q.test(e)){const t=Number(e);if(t>=-2147483648&&t<=2147483647)return t}return null},B=function(e){try{e()}catch(e){setTimeout((()=>{const t=e.stack||"";throw k("Exception was thrown by user callback.",t),e}),Math.floor(0))}},W=function(e,t){const n=setTimeout(e,t);return"number"==typeof n&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):"object"==typeof n&&n.unref&&n.unref(),n};class U{constructor(e,t){this.appName_=e,this.appCheckProvider=t,this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null==t||t.get().then((e=>this.appCheck=e))}getToken(e){return this.appCheck?this.appCheck.getToken(e):new Promise(((t,n)=>{setTimeout((()=>{this.appCheck?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t||t.get().then((t=>t.addTokenListener(e)))}notifyForInvalidToken(){k(`Provided AppCheck credentials for the app named "${this.appName_}" are invalid. This usually indicates your app was not initialized correctly.`)}}class V{constructor(e,t,n){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=n,this.auth_=null,this.auth_=n.getImmediate({optional:!0}),this.auth_||n.onInit((e=>this.auth_=e))}getToken(e){return this.auth_?this.auth_.getToken(e).catch((e=>e&&"auth/token-not-initialized"===e.code?(E("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e))):new Promise(((t,n)=>{setTimeout((()=>{this.auth_?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then((t=>t.addAuthTokenListener(e)))}removeTokenChangeListener(e){this.authProvider_.get().then((t=>t.removeAuthTokenListener(e)))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',k(e)}}class z{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}z.OWNER="owner";const H="5",$=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Y="ac",K="websocket",G="long_polling";class Q{constructor(e,t,n,i,r=!1,s="",o=!1,a=!1){this.secure=t,this.namespace=n,this.webSocketOnly=i,this.nodeAdmin=r,this.persistenceKey=s,this.includeNamespaceInQueryParams=o,this.isUsingEmulator=a,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=f.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&f.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){const e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${t}`}}function X(e,t,n){let i;if((0,s.assert)("string"==typeof t,"typeof type must == string"),(0,s.assert)("object"==typeof n,"typeof params must == object"),t===K)i=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==G)throw new Error("Unknown connection type: "+t);i=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}(function(e){return e.host!==e.internalHost||e.isCustomHost()||e.includeNamespaceInQueryParams})(e)&&(n.ns=e.namespace);const r=[];return M(n,((e,t)=>{r.push(e+"="+t)})),i+r.join("&")}class J{constructor(){this.counters_={}}incrementCounter(e,t=1){(0,s.contains)(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return(0,s.deepCopy)(this.counters_)}}const Z={},ee={};function te(e){const t=e.toString();return Z[t]||(Z[t]=new J),Z[t]}class ne{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse{this.onMessage_(e[t])}));if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}const ie="start";class re{constructor(e,t,n,i,r,s,o){this.connId=e,this.repoInfo=t,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.transportSessionId=s,this.lastSessionId=o,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=S(e),this.stats_=te(t),this.urlFn=e=>(this.appCheckToken&&(e[Y]=this.appCheckToken),X(t,G,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new ne(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout((()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null}),Math.floor(3e4)),function(e){if((0,s.isNodeSdk)()||"complete"===document.readyState)e();else{let t=!1;const n=function(){document.body?t||(t=!0,e()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",(()=>{"complete"===document.readyState&&n()})),window.attachEvent("onload",n))}}((()=>{if(this.isClosed_)return;this.scriptTagHolder=new se(((...e)=>{const[t,n,i,r,s]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,t===ie)this.id=n,this.password=i;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);n?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(n,(()=>{this.onClosed_()}))):this.onClosed_()}}),((...e)=>{const[t,n]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,n)}),(()=>{this.onClosed_()}),this.urlFn);const e={};e[ie]="t",e.ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v=H,this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e[Y]=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&$.test(location.hostname)&&(e.r="f");const t=this.urlFn(e);this.log_("Connecting via long-poll to "+t),this.scriptTagHolder.addTag(t,(()=>{}))}))}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){re.forceAllow_=!0}static forceDisallow(){re.forceDisallow_=!0}static isAvailable(){return!(0,s.isNodeSdk)()&&(!!re.forceAllow_||!(re.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI))}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){const t=(0,s.stringify)(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=(0,s.base64Encode)(t),i=L(n,1840);for(let e=0;edocument.domain="'+document.domain+'";<\/script>'}const i=""+n+"";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){E("frame writing exception"),e.stack&&E(e.stack),E(e)}}}static createIFrame_(){const e=document.createElement("iframe");if(e.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(e);try{e.contentWindow.document||E("No IE domain setting required")}catch(t){const n=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+n+"';document.close();})())"}return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout((()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)}),Math.floor(0)));const e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;const e={};e.id=this.myID,e.pw=this.myPW,e.ser=this.currentSerial;let t=this.urlFn(e),n="",i=0;for(;this.pendingSegs.length>0;){if(!(this.pendingSegs[0].d.length+30+n.length<=1870))break;{const e=this.pendingSegs.shift();n=n+"&seg"+i+"="+e.seg+"&ts"+i+"="+e.ts+"&d"+i+"="+e.d,i++}}return t+=n,this.addLongPollTag_(t,this.currentSerial),!0}return!1}enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);const n=()=>{this.outstandingRequests.delete(t),this.newRequest_()},i=setTimeout(n,Math.floor(25e3));this.addTag(e,(()=>{clearTimeout(i),n()}))}addTag(e,t){(0,s.isNodeSdk)()?this.doNodeLongPoll(e,t):setTimeout((()=>{try{if(!this.sendNewPolls)return;const n=this.myIFrame.doc.createElement("script");n.type="text/javascript",n.async=!0,n.src=e,n.onload=n.onreadystatechange=function(){const e=n.readyState;e&&"loaded"!==e&&"complete"!==e||(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),t())},n.onerror=()=>{E("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(n)}catch(e){}}),Math.floor(1))}}let oe=null;"undefined"!=typeof MozWebSocket?oe=MozWebSocket:"undefined"!=typeof WebSocket&&(oe=WebSocket);class ae{constructor(e,t,n,i,r,s,o){this.connId=e,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=S(this.connId),this.stats_=te(t),this.connURL=ae.connectionURL_(t,s,o,i,n),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,n,i,r){const o={};return o.v=H,!(0,s.isNodeSdk)()&&"undefined"!=typeof location&&location.hostname&&$.test(location.hostname)&&(o.r="f"),t&&(o.s=t),n&&(o.ls=n),i&&(o[Y]=i),r&&(o.p=r),X(e,K,o)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,f.set("previous_websocket_failure",!0);try{let e;if((0,s.isNodeSdk)()){const t=this.nodeAdmin?"AdminNode":"Node";e={headers:{"User-Agent":`Firebase/${H}/${c}/${process.platform}/${t}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(e.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(e.headers["X-Firebase-AppCheck"]=this.appCheckToken);const n="MISSING_ENV_VAR",i=0===this.connURL.indexOf("wss://")?n.HTTPS_PROXY||n.https_proxy:n.HTTP_PROXY||n.http_proxy;i&&(e.proxy={origin:i})}this.mySock=new oe(this.connURL,[],e)}catch(e){this.log_("Error instantiating WebSocket.");const t=e.message||e.data;return t&&this.log_(t),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");const t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){ae.forceDisallow_=!0}static isAvailable(){let e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){const t=/Android ([0-9]{0,}\.[0-9]{0,})/,n=navigator.userAgent.match(t);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=!0)}return!e&&null!==oe&&!ae.forceDisallow_}static previouslyFailed(){return f.isInMemoryStorage||!0===f.get("previous_websocket_failure")}markConnectionHealthy(){f.remove("previous_websocket_failure")}appendFrame_(e){if(this.frames.push(e),this.frames.length===this.totalFrames){const e=this.frames.join("");this.frames=null;const t=(0,s.jsonEval)(e);this.onMessage(t)}}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if((0,s.assert)(null===this.frames,"We already have a frame buffer"),e.length<=6){const t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){if(null===this.mySock)return;const t=e.data;if(this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames)this.appendFrame_(t);else{const e=this.extractFrameCount_(t);null!==e&&this.appendFrame_(e)}}send(e){this.resetKeepAlive();const t=(0,s.stringify)(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=L(t,16384);n.length>1&&this.sendString_(String(n.length));for(let e=0;e{this.mySock&&this.sendString_("0"),this.resetKeepAlive()}),Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}ae.responsesRequiredToBeHealthy=2,ae.healthyTimeout=3e4;class le{constructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[re,ae]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){const t=ae&&ae.isAvailable();let n=t&&!ae.previouslyFailed();if(e.webSocketOnly&&(t||k("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),n=!0),n)this.transports_=[ae];else{const e=this.transports_=[];for(const t of le.ALL_TRANSPORTS)t&&t.isAvailable()&&e.push(t);le.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}le.globalTransportInitialized_=!1;class ce{constructor(e,t,n,i,r,s,o,a,l,c){this.id=e,this.repoInfo_=t,this.applicationId_=n,this.appCheckToken_=i,this.authToken_=r,this.onMessage_=s,this.onReady_=o,this.onDisconnect_=a,this.onKill_=l,this.lastSessionId=c,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=S("c:"+this.id+":"),this.transportManager_=new le(t),this.log_("Connection created"),this.start_()}start_(){const e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;const t=this.connReceiver_(this.conn_),n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout((()=>{this.conn_&&this.conn_.open(t,n)}),Math.floor(0));const i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=W((()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>102400?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>10240?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))}),Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return t=>{e===this.conn_?this.onConnectionLost_(t):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return t=>{2!==this.state_&&(e===this.rx_?this.onPrimaryMessageReceived_(t):e===this.secondaryConn_?this.onSecondaryMessageReceived_(t):this.log_("message on old connection"))}}sendRequest(e){const t={t:"d",d:e};this.sendData_(t)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if("t"in e){const t=e.t;"a"===t?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){const t=R("t",e),n=R("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){const t=R("t",e),n=R("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){const t=R("t",e);if("d"in e){const n=e.d;if("h"===t){const e=Object.assign({},n);this.repoInfo_.isUsingEmulator&&(e.h=this.repoInfo_.host),this.onHandshake_(e)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())}),Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):W((()=>{this.sendPingOnPrimaryIfNecessary_()}),Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){const e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(f.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class he{put(e,t,n,i){}merge(e,t,n,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}class ue{constructor(e){this.allowedEvents_=e,this.listeners_={},(0,s.assert)(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...t){if(Array.isArray(this.listeners_[e])){const n=[...this.listeners_[e]];for(let e=0;et===e)),"Unknown event: "+e)}}class de extends ue{constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||(0,s.isMobileCordova)()||(window.addEventListener("online",(()=>{this.online_||(this.online_=!0,this.trigger("online",!0))}),!1),window.addEventListener("offline",(()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))}),!1))}static getInstance(){return new de}getInitialEvent(e){return(0,s.assert)("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}const pe=32,fe=768;class _e{constructor(e,t){if(void 0===t){this.pieces_=e.split("/");let t=0;for(let e=0;e0&&(this.pieces_[t]=this.pieces_[e],t++);this.pieces_.length=t,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=t}toString(){let e="";for(let t=this.pieceNum_;t=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function ve(e){return e.pieces_.length-e.pieceNum_}function ye(e){let t=e.pieceNum_;return t=e.pieces_.length)return null;const t=[];for(let n=e.pieceNum_;n0&&n.push(e[t])}return new _e(n,0)}function Se(e){return e.pieceNum_>=e.pieces_.length}function Ie(e,t){const n=ge(e),i=ge(t);if(null===n)return t;if(n===i)return Ie(ye(e),ye(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function Te(e,t){const n=be(e,0),i=be(t,0);for(let e=0;eve(t))return!1;for(;nfe)throw new Error(e.errorPrefix_+"has a key path longer than "+fe+" bytes ("+e.byteLength_+").");if(e.parts_.length>pe)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+pe+") or object contains a cycle "+De(e))}function De(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class Ae extends ue{constructor(){let e,t;super(["visible"]),"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(t="visibilitychange",e="hidden"):void 0!==document.mozHidden?(t="mozvisibilitychange",e="mozHidden"):void 0!==document.msHidden?(t="msvisibilitychange",e="msHidden"):void 0!==document.webkitHidden&&(t="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,t&&document.addEventListener(t,(()=>{const t=!document[e];t!==this.visible_&&(this.visible_=t,this.trigger("visible",t))}),!1)}static getInstance(){return new Ae}getInitialEvent(e){return(0,s.assert)("visible"===e,"Unknown event type: "+e),[this.visible_]}}const Re=1e3;class Oe extends he{constructor(e,t,n,i,r,o,a,l){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=n,this.onConnectStatus_=i,this.onServerInfoUpdate_=r,this.authTokenProvider_=o,this.appCheckTokenProvider_=a,this.authOverride_=l,this.id=Oe.nextPersistentConnectionId_++,this.log_=S("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=Re,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!(0,s.isNodeSdk)())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");Ae.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&de.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,n){const i=++this.requestNumber_,r={r:i,a:e,b:t};this.log_((0,s.stringify)(r)),(0,s.assert)(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(r),n&&(this.requestCBHash_[i]=n)}get(e){this.initConnection_();const t=new s.Deferred,n={action:"g",request:{p:e._path.toString(),q:e._queryObject},onComplete:e=>{const n=e.d;"ok"===e.s?t.resolve(n):t.reject(n)}};this.outstandingGets_.push(n),this.outstandingGetCount_++;const i=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(i),t.promise}listen(e,t,n,i){this.initConnection_();const r=e._queryIdentifier,o=e._path.toString();this.log_("Listen called for "+o+" "+r),this.listens.has(o)||this.listens.set(o,new Map),(0,s.assert)(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),(0,s.assert)(!this.listens.get(o).has(r),"listen() called twice for same path/queryId.");const a={onComplete:i,hashFn:t,query:e,tag:n};this.listens.get(o).set(r,a),this.connected_&&this.sendListen_(a)}sendGet_(e){const t=this.outstandingGets_[e];this.sendRequest("g",t.request,(n=>{delete this.outstandingGets_[e],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),t.onComplete&&t.onComplete(n)}))}sendListen_(e){const t=e.query,n=t._path.toString(),i=t._queryIdentifier;this.log_("Listen on "+n+" for "+i);const r={p:n};e.tag&&(r.q=t._queryObject,r.t=e.tag),r.h=e.hashFn(),this.sendRequest("q",r,(r=>{const s=r.d,o=r.s;Oe.warnOnListenWarnings_(s,t);(this.listens.get(n)&&this.listens.get(n).get(i))===e&&(this.log_("listen response",r),"ok"!==o&&this.removeListen_(n,i),e.onComplete&&e.onComplete(o,s))}))}static warnOnListenWarnings_(e,t){if(e&&"object"==typeof e&&(0,s.contains)(e,"w")){const n=(0,s.safeGet)(e,"w");if(Array.isArray(n)&&~n.indexOf("no_index")){const e='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString();k(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${e} at ${n} to your security rules for better performance.`)}}}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},(()=>{})),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){(e&&40===e.length||(0,s.isAdmin)(e))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},(()=>{}))}tryAuth(){if(this.connected_&&this.authToken_){const e=this.authToken_,t=(0,s.isValidFormat)(e)?"auth":"gauth",n={cred:e};null===this.authOverride_?n.noauth=!0:"object"==typeof this.authOverride_&&(n.authvar=this.authOverride_),this.sendRequest(t,n,(t=>{const n=t.s,i=t.d||"error";this.authToken_===e&&("ok"===n?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(n,i))}))}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},(e=>{const t=e.s,n=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)}))}unlisten(e,t){const n=e._path.toString(),i=e._queryIdentifier;this.log_("Unlisten called for "+n+" "+i),(0,s.assert)(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query");this.removeListen_(n,i)&&this.connected_&&this.sendUnlisten_(n,i,e._queryObject,t)}sendUnlisten_(e,t,n,i){this.log_("Unlisten on "+e+" for "+t);const r={p:e};i&&(r.q=n,r.t=i),this.sendRequest("n",r)}onDisconnectPut(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}onDisconnectMerge(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,n,i){const r={p:t,d:n};this.log_("onDisconnect "+e,r),this.sendRequest(e,r,(e=>{i&&setTimeout((()=>{i(e.s,e.d)}),Math.floor(0))}))}put(e,t,n,i){this.putInternal("p",e,t,n,i)}merge(e,t,n,i){this.putInternal("m",e,t,n,i)}putInternal(e,t,n,i,r){this.initConnection_();const s={p:t,d:n};void 0!==r&&(s.h=r),this.outstandingPuts_.push({action:e,request:s,onComplete:i}),this.outstandingPutCount_++;const o=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(o):this.log_("Buffering put: "+t)}sendPut_(e){const t=this.outstandingPuts_[e].action,n=this.outstandingPuts_[e].request,i=this.outstandingPuts_[e].onComplete;this.outstandingPuts_[e].queued=this.connected_,this.sendRequest(t,n,(n=>{this.log_(t+" response",n),delete this.outstandingPuts_[e],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),i&&i(n.s,n.d)}))}reportStats(e){if(this.connected_){const t={c:e};this.log_("reportStats",t),this.sendRequest("s",t,(e=>{if("ok"!==e.s){const t=e.d;this.log_("reportStats","Error sending stats: "+t)}}))}}onDataMessage_(e){if("r"in e){this.log_("from server: "+(0,s.stringify)(e));const t=e.r,n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):I("Unrecognized action received from server: "+(0,s.stringify)(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){(0,s.assert)(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout((()=>{this.establishConnectionTimer_=null,this.establishConnection_()}),Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){if(this.visible_){if(this.lastConnectionEstablishedTime_){(new Date).getTime()-this.lastConnectionEstablishedTime_>3e4&&(this.reconnectDelay_=Re),this.lastConnectionEstablishedTime_=null}}else this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime();const e=(new Date).getTime()-this.lastConnectionAttemptTime_;let t=Math.max(0,this.reconnectDelay_-e);t=Math.random()*t,this.log_("Trying to reconnect in "+t+"ms"),this.scheduleConnect_(t),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)}this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;const e=this.onDataMessage_.bind(this),t=this.onReady_.bind(this),n=this.onRealtimeDisconnect_.bind(this),i=this.id+":"+Oe.nextConnectionId_++,r=this.lastSessionId;let o=!1,a=null;const l=function(){a?a.close():(o=!0,n())},c=function(e){(0,s.assert)(a,"sendRequest call when we're not connected not allowed."),a.sendRequest(e)};this.realtime_={close:l,sendRequest:c};const h=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{const[s,l]=await Promise.all([this.authTokenProvider_.getToken(h),this.appCheckTokenProvider_.getToken(h)]);o?E("getToken() completed but was canceled"):(E("getToken() completed. Creating connection."),this.authToken_=s&&s.accessToken,this.appCheckToken_=l&&l.token,a=new ce(i,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,t,n,(e=>{k(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")}),r))}catch(e){this.log_("Failed to get token: "+e),o||(this.repoInfo_.nodeAdmin&&k(e),l())}}}interrupt(e){E("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){E("Resuming connection for reason: "+e),delete this.interruptReasons_[e],(0,s.isEmpty)(this.interruptReasons_)&&(this.reconnectDelay_=Re,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){const t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let e=0;eO(e))).join("$"):"default";const i=this.removeListen_(e,n);i&&i.onComplete&&i.onComplete("permission_denied")}removeListen_(e,t){const n=new _e(e).toString();let i;if(this.listens.has(n)){const e=this.listens.get(n);i=e.get(t),e.delete(t),0===e.size&&this.listens.delete(n)}else i=void 0;return i}onAuthRevoked_(e,t){E("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=3&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){E("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,this.invalidAppCheckTokenCount_>=3&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(const e of this.listens.values())for(const t of e.values())this.sendListen_(t);for(let e=0;e0}peek(){if(0===this.nodeStack_.length)return null;const e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class We{constructor(e,t,n,i,r){this.key=e,this.value=t,this.color=null!=n?n:We.RED,this.left=null!=i?i:Ue.EMPTY_NODE,this.right=null!=r?r:Ue.EMPTY_NODE}copy(e,t,n,i,r){return new We(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=i?i:this.left,null!=r?r:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let i=this;const r=n(e,i.key);return i=r<0?i.copy(null,null,null,i.left.insert(e,t,n),null):0===r?i.copy(null,t,null,null,null):i.copy(null,null,null,null,i.right.insert(e,t,n)),i.fixUp_()}removeMin_(){if(this.left.isEmpty())return Ue.EMPTY_NODE;let e=this;return e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_()}remove(e,t){let n,i;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return Ue.EMPTY_NODE;i=n.right.min_(),n=n.copy(i.key,i.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}moveRedLeft_(){let e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}moveRedRight_(){let e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}rotateLeft_(){const e=this.copy(null,null,We.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){const e=this.copy(null,null,We.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){const e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){const e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");const e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}We.RED=!0,We.BLACK=!1;class Ue{constructor(e,t=Ue.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Ue(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,We.BLACK,null,null))}remove(e){return new Ue(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,We.BLACK,null,null))}get(e){let t,n=this.root_;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}getPredecessorKey(e){let t,n=this.root_,i=null;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t){if(n.left.isEmpty())return i?i.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:t>0&&(i=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new Be(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new Be(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new Be(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new Be(this.root_,null,this.comparator_,!0,e)}}function Ve(e,t){return D(e.name,t.name)}function ze(e,t){return D(e,t)}let He;Ue.EMPTY_NODE=new class{copy(e,t,n,i,r){return this}insert(e,t,n){return new We(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}};const $e=function(e){return"number"==typeof e?"number:"+F(e):"string:"+e},Ye=function(e){if(e.isLeafNode()){const t=e.val();(0,s.assert)("string"==typeof t||"number"==typeof t||"object"==typeof t&&(0,s.contains)(t,".sv"),"Priority must be a string or number.")}else(0,s.assert)(e===He||e.isEmpty(),"priority of unexpected type.");(0,s.assert)(e===He||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};let Ke,Ge,Qe;class Xe{constructor(e,t=Xe.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,(0,s.assert)(void 0!==this.value_&&null!==this.value_,"LeafNode shouldn't be created with null/undefined value."),Ye(this.priorityNode_)}static set __childrenNodeConstructor(e){Ke=e}static get __childrenNodeConstructor(){return Ke}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Xe(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Xe.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return Se(e)?this:".priority"===ge(e)?this.priorityNode_:Xe.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Xe.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){const n=ge(e);return null===n?t:t.isEmpty()&&".priority"!==n?this:((0,s.assert)(".priority"!==n||1===ve(e),".priority must be the last token in a path"),this.updateImmediateChild(n,Xe.__childrenNodeConstructor.EMPTY_NODE.updateChild(ye(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+$e(this.priorityNode_.val())+":");const t=typeof this.value_;e+=t+":",e+="number"===t?F(this.value_):this.value_,this.lazyHash_=v(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Xe.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Xe.__childrenNodeConstructor?-1:((0,s.assert)(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){const t=typeof e.value_,n=typeof this.value_,i=Xe.VALUE_TYPE_ORDER.indexOf(t),r=Xe.VALUE_TYPE_ORDER.indexOf(n);return(0,s.assert)(i>=0,"Unknown leaf type: "+t),(0,s.assert)(r>=0,"Unknown leaf type: "+n),i===r?"object"===n?0:this.value_{const r=(0,s.safeGet)(this.indexSet_,i);if((0,s.assert)(r,"Missing index implementation for "+i),n===it){if(r.isDefinedOn(e.node)){const n=[],i=t.getIterator(Le.Wrap);let s=i.getNext();for(;s;)s.name!==e.name&&n.push(s),s=i.getNext();return n.push(e),tt(n,r.getCompare())}return it}{const i=t.get(e.name);let r=n;return i&&(r=r.remove(new Le(e.name,i))),r.insert(e,e.node)}}));return new rt(n,this.indexSet_)}removeFromIndexes(e,t){const n=(0,s.map)(this.indexes_,(n=>{if(n===it)return n;{const i=t.get(e.name);return i?n.remove(new Le(e.name,i)):n}}));return new rt(n,this.indexSet_)}}let st;class ot{constructor(e,t,n){this.children_=e,this.priorityNode_=t,this.indexMap_=n,this.lazyHash_=null,this.priorityNode_&&Ye(this.priorityNode_),this.children_.isEmpty()&&(0,s.assert)(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}static get EMPTY_NODE(){return st||(st=new ot(new Ue(ze),null,rt.Default))}isLeafNode(){return!1}getPriority(){return this.priorityNode_||st}updatePriority(e){return this.children_.isEmpty()?this:new ot(this.children_,e,this.indexMap_)}getImmediateChild(e){if(".priority"===e)return this.getPriority();{const t=this.children_.get(e);return null===t?st:t}}getChild(e){const t=ge(e);return null===t?this:this.getImmediateChild(t).getChild(ye(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(e,t){if((0,s.assert)(t,"We should always be passing snapshot nodes"),".priority"===e)return this.updatePriority(t);{const n=new Le(e,t);let i,r;t.isEmpty()?(i=this.children_.remove(e),r=this.indexMap_.removeFromIndexes(n,this.children_)):(i=this.children_.insert(e,t),r=this.indexMap_.addToIndexes(n,this.children_));const s=i.isEmpty()?st:this.priorityNode_;return new ot(i,s,r)}}updateChild(e,t){const n=ge(e);if(null===n)return t;{(0,s.assert)(".priority"!==ge(e)||1===ve(e),".priority must be the last token in a path");const i=this.getImmediateChild(n).updateChild(ye(e),t);return this.updateImmediateChild(n,i)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(e){if(this.isEmpty())return null;const t={};let n=0,i=0,r=!0;if(this.forEachChild(Je,((s,o)=>{t[s]=o.val(e),n++,r&&ot.INTEGER_REGEXP_.test(s)?i=Math.max(i,Number(s)):r=!1})),!e&&r&&i<2*n){const e=[];for(const n in t)e[n]=t[n];return e}return e&&!this.getPriority().isEmpty()&&(t[".priority"]=this.getPriority().val()),t}hash(){if(null===this.lazyHash_){let e="";this.getPriority().isEmpty()||(e+="priority:"+$e(this.getPriority().val())+":"),this.forEachChild(Je,((t,n)=>{const i=n.hash();""!==i&&(e+=":"+t+":"+i)})),this.lazyHash_=""===e?"":v(e)}return this.lazyHash_}getPredecessorChildName(e,t,n){const i=this.resolveIndex_(n);if(i){const n=i.getPredecessorKey(new Le(e,t));return n?n.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.minKey();return e&&e.name}return this.children_.minKey()}getFirstChild(e){const t=this.getFirstChildName(e);return t?new Le(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.maxKey();return e&&e.name}return this.children_.maxKey()}getLastChild(e){const t=this.getLastChildName(e);return t?new Le(t,this.children_.get(t)):null}forEachChild(e,t){const n=this.resolveIndex_(e);return n?n.inorderTraversal((e=>t(e.name,e.node))):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getIteratorFrom(e,(e=>e));{const n=this.children_.getIteratorFrom(e.name,Le.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)<0;)n.getNext(),i=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getReverseIteratorFrom(e,(e=>e));{const n=this.children_.getReverseIteratorFrom(e.name,Le.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)>0;)n.getNext(),i=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===at?-1:0}withIndex(e){if(e===je||this.indexMap_.hasIndex(e))return this;{const t=this.indexMap_.addIndex(e,this.children_);return new ot(this.children_,this.priorityNode_,t)}}isIndexed(e){return e===je||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(e.isLeafNode())return!1;{const t=e;if(this.getPriority().equals(t.getPriority())){if(this.children_.count()===t.children_.count()){const e=this.getIterator(Je),n=t.getIterator(Je);let i=e.getNext(),r=n.getNext();for(;i&&r;){if(i.name!==r.name||!i.node.equals(r.node))return!1;i=e.getNext(),r=n.getNext()}return null===i&&null===r}return!1}return!1}}resolveIndex_(e){return e===je?null:this.indexMap_.get(e.toString())}}ot.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;const at=new class extends ot{constructor(){super(new Ue(ze),ot.EMPTY_NODE,rt.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ot.EMPTY_NODE}isEmpty(){return!1}};Object.defineProperties(Le,{MIN:{value:new Le(N,ot.EMPTY_NODE)},MAX:{value:new Le(P,at)}}),qe.__EMPTY_NODE=ot.EMPTY_NODE,Xe.__childrenNodeConstructor=ot,He=at,function(e){Qe=e}(at);const lt=!0;function ct(e,t=null){if(null===e)return ot.EMPTY_NODE;if("object"==typeof e&&".priority"in e&&(t=e[".priority"]),(0,s.assert)(null===t||"string"==typeof t||"number"==typeof t||"object"==typeof t&&".sv"in t,"Invalid priority type found: "+typeof t),"object"==typeof e&&".value"in e&&null!==e[".value"]&&(e=e[".value"]),"object"!=typeof e||".sv"in e){return new Xe(e,ct(t))}if(e instanceof Array||!lt){let n=ot.EMPTY_NODE;return M(e,((t,i)=>{if((0,s.contains)(e,t)&&"."!==t.substring(0,1)){const e=ct(i);!e.isLeafNode()&&e.isEmpty()||(n=n.updateImmediateChild(t,e))}})),n.updatePriority(ct(t))}{const n=[];let i=!1;if(M(e,((e,t)=>{if("."!==e.substring(0,1)){const r=ct(t);r.isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new Le(e,r)))}})),0===n.length)return ot.EMPTY_NODE;const r=tt(n,Ve,(e=>e.name),ze);if(i){const e=tt(n,Je.getCompare());return new ot(r,ct(t),new rt({".priority":e},{".priority":Je}))}return new ot(r,ct(t),rt.Default)}}!function(e){Ge=e}(ct);class ht extends Me{constructor(e){super(),this.indexPath_=e,(0,s.assert)(!Se(e)&&".priority"!==ge(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){const n=this.extractChild(e.node),i=this.extractChild(t.node),r=n.compareTo(i);return 0===r?D(e.name,t.name):r}makePost(e,t){const n=ct(e),i=ot.EMPTY_NODE.updateChild(this.indexPath_,n);return new Le(t,i)}maxPost(){const e=ot.EMPTY_NODE.updateChild(this.indexPath_,at);return new Le(P,e)}toString(){return be(this.indexPath_,0).join("/")}}const ut=new class extends Me{compare(e,t){const n=e.node.compareTo(t.node);return 0===n?D(e.name,t.name):n}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return Le.MIN}maxPost(){return Le.MAX}makePost(e,t){const n=ct(e);return new Le(t,n)}toString(){return".value"}};function dt(e){return{type:"value",snapshotNode:e}}function pt(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function ft(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function _t(e,t,n){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:n}}class mt{constructor(e){this.index_=e}updateChild(e,t,n,i,r,o){(0,s.assert)(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");const a=e.getImmediateChild(t);return a.getChild(i).equals(n.getChild(i))&&a.isEmpty()===n.isEmpty()?e:(null!=o&&(n.isEmpty()?e.hasChild(t)?o.trackChildChange(ft(t,a)):(0,s.assert)(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?o.trackChildChange(pt(t,n)):o.trackChildChange(_t(t,n,a))),e.isLeafNode()&&n.isEmpty()?e:e.updateImmediateChild(t,n).withIndex(this.index_))}updateFullNode(e,t,n){return null!=n&&(e.isLeafNode()||e.forEachChild(Je,((e,i)=>{t.hasChild(e)||n.trackChildChange(ft(e,i))})),t.isLeafNode()||t.forEachChild(Je,((t,i)=>{if(e.hasChild(t)){const r=e.getImmediateChild(t);r.equals(i)||n.trackChildChange(_t(t,i,r))}else n.trackChildChange(pt(t,i))}))),t.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?ot.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class gt{constructor(e){this.indexedFilter_=new mt(e.getIndex()),this.index_=e.getIndex(),this.startPost_=gt.getStartPost_(e),this.endPost_=gt.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){const t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,n=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&n}updateChild(e,t,n,i,r,s){return this.matches(new Le(t,n))||(n=ot.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,n,i,r,s)}updateFullNode(e,t,n){t.isLeafNode()&&(t=ot.EMPTY_NODE);let i=t.withIndex(this.index_);i=i.updatePriority(ot.EMPTY_NODE);const r=this;return t.forEachChild(Je,((e,t)=>{r.matches(new Le(e,t))||(i=i.updateImmediateChild(e,ot.EMPTY_NODE))})),this.indexedFilter_.updateFullNode(e,i,n)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){const t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){const t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}class vt{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{const t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{const t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new gt(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,n,i,r,s){return this.rangedFilter_.matches(new Le(t,n))||(n=ot.EMPTY_NODE),e.getImmediateChild(t).equals(n)?e:e.numChildren()e(n,t)}else o=this.index_.getCompare();const a=e;(0,s.assert)(a.numChildren()===this.limit_,"");const l=new Le(t,n),c=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(l);if(a.hasChild(t)){const e=a.getImmediateChild(t);let s=i.getChildAfterChild(this.index_,c,this.reverse_);for(;null!=s&&(s.name===t||a.hasChild(s.name));)s=i.getChildAfterChild(this.index_,s,this.reverse_);const u=null==s?1:o(s,l);if(h&&!n.isEmpty()&&u>=0)return null!=r&&r.trackChildChange(_t(t,n,e)),a.updateImmediateChild(t,n);{null!=r&&r.trackChildChange(ft(t,e));const n=a.updateImmediateChild(t,ot.EMPTY_NODE);return null!=s&&this.rangedFilter_.matches(s)?(null!=r&&r.trackChildChange(pt(s.name,s.node)),n.updateImmediateChild(s.name,s.node)):n}}return n.isEmpty()?e:h&&o(c,l)>=0?(null!=r&&(r.trackChildChange(ft(c.name,c.node)),r.trackChildChange(pt(t,n))),a.updateImmediateChild(t,n).updateImmediateChild(c.name,ot.EMPTY_NODE)):e}}class yt{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=Je}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return(0,s.assert)(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return(0,s.assert)(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:N}hasEnd(){return this.endSet_}getIndexEndValue(){return(0,s.assert)(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return(0,s.assert)(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:P}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return(0,s.assert)(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===Je}copy(){const e=new yt;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function wt(e,t,n){const i=e.copy();return i.startSet_=!0,void 0===t&&(t=null),i.indexStartValue_=t,null!=n?(i.startNameSet_=!0,i.indexStartName_=n):(i.startNameSet_=!1,i.indexStartName_=""),i}function bt(e,t,n){const i=e.copy();return i.endSet_=!0,void 0===t&&(t=null),i.indexEndValue_=t,void 0!==n?(i.endNameSet_=!0,i.indexEndName_=n):(i.endNameSet_=!1,i.indexEndName_=""),i}function Ct(e,t){const n=e.copy();return n.index_=t,n}function Et(e){const t={};if(e.isDefault())return t;let n;if(e.index_===Je?n="$priority":e.index_===ut?n="$value":e.index_===je?n="$key":((0,s.assert)(e.index_ instanceof ht,"Unrecognized index type!"),n=e.index_.toString()),t.orderBy=(0,s.stringify)(n),e.startSet_){const n=e.startAfterSet_?"startAfter":"startAt";t[n]=(0,s.stringify)(e.indexStartValue_),e.startNameSet_&&(t[n]+=","+(0,s.stringify)(e.indexStartName_))}if(e.endSet_){const n=e.endBeforeSet_?"endBefore":"endAt";t[n]=(0,s.stringify)(e.indexEndValue_),e.endNameSet_&&(t[n]+=","+(0,s.stringify)(e.indexEndName_))}return e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_),t}function St(e){const t={};if(e.startSet_&&(t.sp=e.indexStartValue_,e.startNameSet_&&(t.sn=e.indexStartName_),t.sin=!e.startAfterSet_),e.endSet_&&(t.ep=e.indexEndValue_,e.endNameSet_&&(t.en=e.indexEndName_),t.ein=!e.endBeforeSet_),e.limitSet_){t.l=e.limit_;let n=e.viewFrom_;""===n&&(n=e.isViewFromLeft()?"l":"r"),t.vf=n}return e.index_!==Je&&(t.i=e.index_.toString()),t}class It extends he{constructor(e,t,n,i){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=n,this.appCheckTokenProvider_=i,this.log_=S("p:rest:"),this.listens_={}}reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:((0,s.assert)(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}listen(e,t,n,i){const r=e._path.toString();this.log_("Listen called for "+r+" "+e._queryIdentifier);const o=It.getListenId_(e,n),a={};this.listens_[o]=a;const l=Et(e._queryParams);this.restRequest_(r+".json",l,((e,t)=>{let l=t;if(404===e&&(l=null,e=null),null===e&&this.onDataUpdate_(r,l,!1,n),(0,s.safeGet)(this.listens_,o)===a){let t;t=e?401===e?"permission_denied":"rest_error:"+e:"ok",i(t,null)}}))}unlisten(e,t){const n=It.getListenId_(e,t);delete this.listens_[n]}get(e){const t=Et(e._queryParams),n=e._path.toString(),i=new s.Deferred;return this.restRequest_(n+".json",t,((e,t)=>{let r=t;404===e&&(r=null,e=null),null===e?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))})),i.promise}refreshAuthToken(e){}restRequest_(e,t={},n){return t.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then((([i,r])=>{i&&i.accessToken&&(t.auth=i.accessToken),r&&r.token&&(t.ac=r.token);const o=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+(0,s.querystring)(t);this.log_("Sending REST request for "+o);const a=new XMLHttpRequest;a.onreadystatechange=()=>{if(n&&4===a.readyState){this.log_("REST Response for "+o+" received. status:",a.status,"response:",a.responseText);let e=null;if(a.status>=200&&a.status<300){try{e=(0,s.jsonEval)(a.responseText)}catch(e){k("Failed to parse JSON response for "+o+": "+a.responseText)}n(null,e)}else 401!==a.status&&404!==a.status&&k("Got unsuccessful REST response for "+o+" Status: "+a.status),n(a.status);n=null}},a.open("GET",o,!0),a.send()}))}}class Tt{constructor(){this.rootNode_=ot.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function kt(){return{value:null,children:new Map}}function xt(e,t,n){if(Se(t))e.value=n,e.children.clear();else if(null!==e.value)e.value=e.value.updateChild(t,n);else{const i=ge(t);e.children.has(i)||e.children.set(i,kt());xt(e.children.get(i),t=ye(t),n)}}function Nt(e,t){if(Se(t))return e.value=null,e.children.clear(),!0;if(null!==e.value){if(e.value.isLeafNode())return!1;{const n=e.value;return e.value=null,n.forEachChild(Je,((t,n)=>{xt(e,new _e(t),n)})),Nt(e,t)}}if(e.children.size>0){const n=ge(t);if(t=ye(t),e.children.has(n)){Nt(e.children.get(n),t)&&e.children.delete(n)}return 0===e.children.size}return!0}function Pt(e,t,n){null!==e.value?n(t,e.value):function(e,t){e.children.forEach(((e,n)=>{t(n,e)}))}(e,((e,i)=>{Pt(i,new _e(t.toString()+"/"+e),n)}))}class Dt{constructor(e){this.collection_=e,this.last_=null}get(){const e=this.collection_.get(),t=Object.assign({},e);return this.last_&&M(this.last_,((e,n)=>{t[e]=t[e]-n})),this.last_=e,t}}class At{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new Dt(e);const n=1e4+2e4*Math.random();W(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){const e=this.statsListener_.get(),t={};let n=!1;M(e,((e,i)=>{i>0&&(0,s.contains)(this.statsToReport_,e)&&(t[e]=i,n=!0)})),n&&this.server_.reportStats(t),W(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}var Rt;function Ot(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}!function(e){e[e.OVERWRITE=0]="OVERWRITE",e[e.MERGE=1]="MERGE",e[e.ACK_USER_WRITE=2]="ACK_USER_WRITE",e[e.LISTEN_COMPLETE=3]="LISTEN_COMPLETE"}(Rt||(Rt={}));class Lt{constructor(e,t,n){this.path=e,this.affectedTree=t,this.revert=n,this.type=Rt.ACK_USER_WRITE,this.source={fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}operationForChild(e){if(Se(this.path)){if(null!=this.affectedTree.value)return(0,s.assert)(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{const t=this.affectedTree.subtree(new _e(e));return new Lt(me(),t,this.revert)}}return(0,s.assert)(ge(this.path)===e,"operationForChild called for unrelated child."),new Lt(ye(this.path),this.affectedTree,this.revert)}}class Mt{constructor(e,t){this.source=e,this.path=t,this.type=Rt.LISTEN_COMPLETE}operationForChild(e){return Se(this.path)?new Mt(this.source,me()):new Mt(this.source,ye(this.path))}}class Ft{constructor(e,t,n){this.source=e,this.path=t,this.snap=n,this.type=Rt.OVERWRITE}operationForChild(e){return Se(this.path)?new Ft(this.source,me(),this.snap.getImmediateChild(e)):new Ft(this.source,ye(this.path),this.snap)}}class qt{constructor(e,t,n){this.source=e,this.path=t,this.children=n,this.type=Rt.MERGE}operationForChild(e){if(Se(this.path)){const t=this.children.subtree(new _e(e));return t.isEmpty()?null:t.value?new Ft(this.source,me(),t.value):new qt(this.source,me(),t)}return(0,s.assert)(ge(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new qt(this.source,ye(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class jt{constructor(e,t,n){this.node_=e,this.fullyInitialized_=t,this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(Se(e))return this.isFullyInitialized()&&!this.filtered_;const t=ge(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Bt{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Wt(e,t,n,i,r,o){const a=i.filter((e=>e.type===n));a.sort(((t,n)=>function(e,t,n){if(null==t.childName||null==n.childName)throw(0,s.assertionError)("Should only compare child_ events.");const i=new Le(t.childName,t.snapshotNode),r=new Le(n.childName,n.snapshotNode);return e.index_.compare(i,r)}(e,t,n))),a.forEach((n=>{const i=function(e,t,n){return"value"===t.type||"child_removed"===t.type||(t.prevName=n.getPredecessorChildName(t.childName,t.snapshotNode,e.index_)),t}(e,n,o);r.forEach((r=>{r.respondsTo(n.type)&&t.push(r.createEvent(i,e.query_))}))}))}function Ut(e,t){return{eventCache:e,serverCache:t}}function Vt(e,t,n,i){return Ut(new jt(t,n,i),e.serverCache)}function zt(e,t,n,i){return Ut(e.eventCache,new jt(t,n,i))}function Ht(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function $t(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Yt;class Kt{constructor(e,t=(()=>(Yt||(Yt=new Ue(A)),Yt))()){this.value=e,this.children=t}static fromObject(e){let t=new Kt(null);return M(e,((e,n)=>{t=t.set(new _e(e),n)})),t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:me(),value:this.value};if(Se(e))return null;{const n=ge(e),i=this.children.get(n);if(null!==i){const r=i.findRootMostMatchingPathAndValue(ye(e),t);if(null!=r){return{path:Ee(new _e(n),r.path),value:r.value}}return null}return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,(()=>!0))}subtree(e){if(Se(e))return this;{const t=ge(e),n=this.children.get(t);return null!==n?n.subtree(ye(e)):new Kt(null)}}set(e,t){if(Se(e))return new Kt(t,this.children);{const n=ge(e),i=(this.children.get(n)||new Kt(null)).set(ye(e),t),r=this.children.insert(n,i);return new Kt(this.value,r)}}remove(e){if(Se(e))return this.children.isEmpty()?new Kt(null):new Kt(null,this.children);{const t=ge(e),n=this.children.get(t);if(n){const i=n.remove(ye(e));let r;return r=i.isEmpty()?this.children.remove(t):this.children.insert(t,i),null===this.value&&r.isEmpty()?new Kt(null):new Kt(this.value,r)}return this}}get(e){if(Se(e))return this.value;{const t=ge(e),n=this.children.get(t);return n?n.get(ye(e)):null}}setTree(e,t){if(Se(e))return t;{const n=ge(e),i=(this.children.get(n)||new Kt(null)).setTree(ye(e),t);let r;return r=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Kt(this.value,r)}}fold(e){return this.fold_(me(),e)}fold_(e,t){const n={};return this.children.inorderTraversal(((i,r)=>{n[i]=r.fold_(Ee(e,i),t)})),t(e,this.value,n)}findOnPath(e,t){return this.findOnPath_(e,me(),t)}findOnPath_(e,t,n){const i=!!this.value&&n(t,this.value);if(i)return i;if(Se(e))return null;{const i=ge(e),r=this.children.get(i);return r?r.findOnPath_(ye(e),Ee(t,i),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,me(),t)}foreachOnPath_(e,t,n){if(Se(e))return this;{this.value&&n(t,this.value);const i=ge(e),r=this.children.get(i);return r?r.foreachOnPath_(ye(e),Ee(t,i),n):new Kt(null)}}foreach(e){this.foreach_(me(),e)}foreach_(e,t){this.children.inorderTraversal(((n,i)=>{i.foreach_(Ee(e,n),t)})),this.value&&t(e,this.value)}foreachChild(e){this.children.inorderTraversal(((t,n)=>{n.value&&e(t,n.value)}))}}class Gt{constructor(e){this.writeTree_=e}static empty(){return new Gt(new Kt(null))}}function Qt(e,t,n){if(Se(t))return new Gt(new Kt(n));{const i=e.writeTree_.findRootMostValueAndPath(t);if(null!=i){const r=i.path;let s=i.value;const o=Ie(r,t);return s=s.updateChild(o,n),new Gt(e.writeTree_.set(r,s))}{const i=new Kt(n),r=e.writeTree_.setTree(t,i);return new Gt(r)}}}function Xt(e,t,n){let i=e;return M(n,((e,n)=>{i=Qt(i,Ee(t,e),n)})),i}function Jt(e,t){if(Se(t))return Gt.empty();{const n=e.writeTree_.setTree(t,new Kt(null));return new Gt(n)}}function Zt(e,t){return null!=en(e,t)}function en(e,t){const n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(Ie(n.path,t)):null}function tn(e){const t=[],n=e.writeTree_.value;return null!=n?n.isLeafNode()||n.forEachChild(Je,((e,n)=>{t.push(new Le(e,n))})):e.writeTree_.children.inorderTraversal(((e,n)=>{null!=n.value&&t.push(new Le(e,n.value))})),t}function nn(e,t){if(Se(t))return e;{const n=en(e,t);return new Gt(null!=n?new Kt(n):e.writeTree_.subtree(t))}}function rn(e){return e.writeTree_.isEmpty()}function sn(e,t){return on(me(),e.writeTree_,t)}function on(e,t,n){if(null!=t.value)return n.updateChild(e,t.value);{let i=null;return t.children.inorderTraversal(((t,r)=>{".priority"===t?((0,s.assert)(null!==r.value,"Priority writes must always be leaf nodes"),i=r.value):n=on(Ee(e,t),r,n)})),n.getChild(e).isEmpty()||null===i||(n=n.updateChild(Ee(e,".priority"),i)),n}}function an(e,t){return wn(t,e)}function ln(e,t){const n=e.allWrites.findIndex((e=>e.writeId===t));(0,s.assert)(n>=0,"removeWrite called with nonexistent writeId.");const i=e.allWrites[n];e.allWrites.splice(n,1);let r=i.visible,o=!1,a=e.allWrites.length-1;for(;r&&a>=0;){const t=e.allWrites[a];t.visible&&(a>=n&&cn(t,i.path)?r=!1:xe(i.path,t.path)&&(o=!0)),a--}if(r){if(o)return function(e){e.visibleWrites=un(e.allWrites,hn,me()),e.allWrites.length>0?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1}(e),!0;if(i.snap)e.visibleWrites=Jt(e.visibleWrites,i.path);else{M(i.children,(t=>{e.visibleWrites=Jt(e.visibleWrites,Ee(i.path,t))}))}return!0}return!1}function cn(e,t){if(e.snap)return xe(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&xe(Ee(e.path,n),t))return!0;return!1}function hn(e){return e.visible}function un(e,t,n){let i=Gt.empty();for(let r=0;r{i=i.updateImmediateChild(e,t)})),i;if(n){const r=nn(e.visibleWrites,t);return n.forEachChild(Je,((e,t)=>{const n=sn(nn(r,new _e(e)),t);i=i.updateImmediateChild(e,n)})),tn(r).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}return tn(nn(e.visibleWrites,t)).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}(e.writeTree,e.treePath,t)}function _n(e,t,n,i){return function(e,t,n,i,r){(0,s.assert)(i||r,"Either existingEventSnap or existingServerSnap must exist");const o=Ee(t,n);if(Zt(e.visibleWrites,o))return null;{const t=nn(e.visibleWrites,o);return rn(t)?r.getChild(n):sn(t,r.getChild(n))}}(e.writeTree,e.treePath,t,n,i)}function mn(e,t){return function(e,t){return en(e.visibleWrites,t)}(e.writeTree,Ee(e.treePath,t))}function gn(e,t,n,i,r,s){return function(e,t,n,i,r,s,o){let a;const l=nn(e.visibleWrites,t),c=en(l,me());if(null!=c)a=c;else{if(null==n)return[];a=sn(l,n)}if(a=a.withIndex(o),a.isEmpty()||a.isLeafNode())return[];{const e=[],t=o.getCompare(),n=s?a.getReverseIteratorFrom(i,o):a.getIteratorFrom(i,o);let l=n.getNext();for(;l&&e.length{const c=Ee(n,i);xn(t,ge(c))&&(a=kn(e,a,c,l,r,s,o))})),i.foreach(((i,l)=>{const c=Ee(n,i);xn(t,ge(c))||(a=kn(e,a,c,l,r,s,o))})),a}(e,t,c.path,c.children,i,r,o):((0,s.assert)(c.source.fromServer,"Unknown source."),l=c.source.tagged||t.serverCache.isFiltered(),a=Pn(e,t,c.path,c.children,i,r,l,o))}else if(n.type===Rt.ACK_USER_WRITE){const l=n;a=l.revert?function(e,t,n,i,r,o){let a;if(null!=mn(i,n))return t;{const l=new En(i,t,r),c=t.eventCache.getNode();let h;if(Se(n)||".priority"===ge(n)){let n;if(t.serverCache.isFullyInitialized())n=pn(i,$t(t));else{const e=t.serverCache.getNode();(0,s.assert)(e instanceof ot,"serverChildren would be complete if leaf node"),n=fn(i,e)}h=e.filter.updateFullNode(c,n,o)}else{const r=ge(n);let s=vn(i,r,t.serverCache);null==s&&t.serverCache.isCompleteForChild(r)&&(s=c.getImmediateChild(r)),h=null!=s?e.filter.updateChild(c,r,s,ye(n),l,o):t.eventCache.getNode().hasChild(r)?e.filter.updateChild(c,r,ot.EMPTY_NODE,ye(n),l,o):c,h.isEmpty()&&t.serverCache.isFullyInitialized()&&(a=pn(i,$t(t)),a.isLeafNode()&&(h=e.filter.updateFullNode(h,a,o)))}return a=t.serverCache.isFullyInitialized()||null!=mn(i,me()),Vt(t,h,a,e.filter.filtersNodes())}}(e,t,l.path,i,r,o):function(e,t,n,i,r,s,o){if(null!=mn(r,n))return t;const a=t.serverCache.isFiltered(),l=t.serverCache;if(null!=i.value){if(Se(n)&&l.isFullyInitialized()||l.isCompleteForPath(n))return Tn(e,t,n,l.getNode().getChild(n),r,s,a,o);if(Se(n)){let i=new Kt(null);return l.getNode().forEachChild(je,((e,t)=>{i=i.set(new _e(e),t)})),Pn(e,t,n,i,r,s,a,o)}return t}{let c=new Kt(null);return i.foreach(((e,t)=>{const i=Ee(n,e);l.isCompleteForPath(i)&&(c=c.set(e,l.getNode().getChild(i)))})),Pn(e,t,n,c,r,s,a,o)}}(e,t,l.path,l.affectedTree,i,r,o)}else{if(n.type!==Rt.LISTEN_COMPLETE)throw(0,s.assertionError)("Unknown operation type: "+n.type);a=function(e,t,n,i,r){const s=t.serverCache,o=zt(t,s.getNode(),s.isFullyInitialized()||Se(n),s.isFiltered());return In(e,o,n,i,Cn,r)}(e,t,n.path,i,o)}const c=o.getChanges();return function(e,t,n){const i=t.eventCache;if(i.isFullyInitialized()){const r=i.getNode().isLeafNode()||i.getNode().isEmpty(),s=Ht(e);(n.length>0||!e.eventCache.isFullyInitialized()||r&&!i.getNode().equals(s)||!i.getNode().getPriority().equals(s.getPriority()))&&n.push(dt(Ht(t)))}}(t,a,c),{viewCache:a,changes:c}}function In(e,t,n,i,r,o){const a=t.eventCache;if(null!=mn(i,n))return t;{let l,c;if(Se(n))if((0,s.assert)(t.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t.serverCache.isFiltered()){const n=$t(t),r=fn(i,n instanceof ot?n:ot.EMPTY_NODE);l=e.filter.updateFullNode(t.eventCache.getNode(),r,o)}else{const n=pn(i,$t(t));l=e.filter.updateFullNode(t.eventCache.getNode(),n,o)}else{const h=ge(n);if(".priority"===h){(0,s.assert)(1===ve(n),"Can't have a priority with additional path components");const r=a.getNode();c=t.serverCache.getNode();const o=_n(i,n,r,c);l=null!=o?e.filter.updatePriority(r,o):a.getNode()}else{const s=ye(n);let u;if(a.isCompleteForChild(h)){c=t.serverCache.getNode();const e=_n(i,n,a.getNode(),c);u=null!=e?a.getNode().getImmediateChild(h).updateChild(s,e):a.getNode().getImmediateChild(h)}else u=vn(i,h,t.serverCache);l=null!=u?e.filter.updateChild(a.getNode(),h,u,s,r,o):a.getNode()}}return Vt(t,l,a.isFullyInitialized()||Se(n),e.filter.filtersNodes())}}function Tn(e,t,n,i,r,s,o,a){const l=t.serverCache;let c;const h=o?e.filter:e.filter.getIndexedFilter();if(Se(n))c=h.updateFullNode(l.getNode(),i,null);else if(h.filtersNodes()&&!l.isFiltered()){const e=l.getNode().updateChild(n,i);c=h.updateFullNode(l.getNode(),e,null)}else{const e=ge(n);if(!l.isCompleteForPath(n)&&ve(n)>1)return t;const r=ye(n),s=l.getNode().getImmediateChild(e).updateChild(r,i);c=".priority"===e?h.updatePriority(l.getNode(),s):h.updateChild(l.getNode(),e,s,r,Cn,null)}const u=zt(t,c,l.isFullyInitialized()||Se(n),h.filtersNodes());return In(e,u,n,r,new En(r,u,s),a)}function kn(e,t,n,i,r,s,o){const a=t.eventCache;let l,c;const h=new En(r,t,s);if(Se(n))c=e.filter.updateFullNode(t.eventCache.getNode(),i,o),l=Vt(t,c,!0,e.filter.filtersNodes());else{const r=ge(n);if(".priority"===r)c=e.filter.updatePriority(t.eventCache.getNode(),i),l=Vt(t,c,a.isFullyInitialized(),a.isFiltered());else{const s=ye(n),c=a.getNode().getImmediateChild(r);let u;if(Se(s))u=i;else{const e=h.getCompleteChild(r);u=null!=e?".priority"===we(s)&&e.getChild(Ce(s)).isEmpty()?e:e.updateChild(s,i):ot.EMPTY_NODE}if(c.equals(u))l=t;else{l=Vt(t,e.filter.updateChild(a.getNode(),r,u,s,h,o),a.isFullyInitialized(),e.filter.filtersNodes())}}}return l}function xn(e,t){return e.eventCache.isCompleteForChild(t)}function Nn(e,t,n){return n.foreach(((e,n)=>{t=t.updateChild(e,n)})),t}function Pn(e,t,n,i,r,s,o,a){if(t.serverCache.getNode().isEmpty()&&!t.serverCache.isFullyInitialized())return t;let l,c=t;l=Se(n)?i:new Kt(null).setTree(n,i);const h=t.serverCache.getNode();return l.children.inorderTraversal(((n,i)=>{if(h.hasChild(n)){const l=Nn(0,t.serverCache.getNode().getImmediateChild(n),i);c=Tn(e,c,new _e(n),l,r,s,o,a)}})),l.children.inorderTraversal(((n,i)=>{const l=!t.serverCache.isCompleteForChild(n)&&null===i.value;if(!h.hasChild(n)&&!l){const l=Nn(0,t.serverCache.getNode().getImmediateChild(n),i);c=Tn(e,c,new _e(n),l,r,s,o,a)}})),c}class Dn{constructor(e,t){this.query_=e,this.eventRegistrations_=[];const n=this.query_._queryParams,i=new mt(n.getIndex()),r=(s=n).loadsAllData()?new mt(s.getIndex()):s.hasLimit()?new vt(s):new gt(s);var s;this.processor_=function(e){return{filter:e}}(r);const o=t.serverCache,a=t.eventCache,l=i.updateFullNode(ot.EMPTY_NODE,o.getNode(),null),c=r.updateFullNode(ot.EMPTY_NODE,a.getNode(),null),h=new jt(l,o.isFullyInitialized(),i.filtersNodes()),u=new jt(c,a.isFullyInitialized(),r.filtersNodes());this.viewCache_=Ut(u,h),this.eventGenerator_=new Bt(this.query_)}get query(){return this.query_}}function An(e,t){const n=$t(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!Se(t)&&!n.getImmediateChild(ge(t)).isEmpty())?n.getChild(t):null}function Rn(e){return 0===e.eventRegistrations_.length}function On(e,t,n){const i=[];if(n){(0,s.assert)(null==t,"A cancel should cancel all event registrations.");const r=e.query._path;e.eventRegistrations_.forEach((e=>{const t=e.createCancelEvent(n,r);t&&i.push(t)}))}if(t){let n=[];for(let i=0;i{var n;"child_changed"===t.type&&e.index_.indexedValueChanged(t.oldSnap,t.snapshotNode)&&s.push((n=t.childName,{type:"child_moved",snapshotNode:t.snapshotNode,childName:n}))})),Wt(e,r,"child_removed",t,i,n),Wt(e,r,"child_added",t,i,n),Wt(e,r,"child_moved",s,i,n),Wt(e,r,"child_changed",t,i,n),Wt(e,r,"value",t,i,n),r}(e.eventGenerator_,t,n,r)}let Fn,qn;class jn{constructor(){this.views=new Map}}function Bn(e,t,n,i){const r=t.source.queryId;if(null!==r){const o=e.views.get(r);return(0,s.assert)(null!=o,"SyncTree gave us an op for an invalid query."),Ln(o,t,n,i)}{let r=[];for(const s of e.views.values())r=r.concat(Ln(s,t,n,i));return r}}function Wn(e,t,n,i,r){const s=t._queryIdentifier,o=e.views.get(s);if(!o){let e=pn(n,r?i:null),s=!1;e?s=!0:i instanceof ot?(e=fn(n,i),s=!1):(e=ot.EMPTY_NODE,s=!1);const o=Ut(new jt(e,s,!1),new jt(i,r,!1));return new Dn(t,o)}return o}function Un(e,t,n,i,r,s){const o=Wn(e,t,i,r,s);return e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,o),function(e,t){e.eventRegistrations_.push(t)}(o,n),function(e,t){const n=e.viewCache_.eventCache,i=[];n.getNode().isLeafNode()||n.getNode().forEachChild(Je,((e,t)=>{i.push(pt(e,t))}));return n.isFullyInitialized()&&i.push(dt(n.getNode())),Mn(e,i,n.getNode(),t)}(o,n)}function Vn(e,t,n,i){const r=t._queryIdentifier,o=[];let a=[];const l=Kn(e);if("default"===r)for(const[t,r]of e.views.entries())a=a.concat(On(r,n,i)),Rn(r)&&(e.views.delete(t),r.query._queryParams.loadsAllData()||o.push(r.query));else{const t=e.views.get(r);t&&(a=a.concat(On(t,n,i)),Rn(t)&&(e.views.delete(r),t.query._queryParams.loadsAllData()||o.push(t.query)))}return l&&!Kn(e)&&o.push(new((0,s.assert)(Fn,"Reference.ts has not been loaded"),Fn)(t._repo,t._path)),{removed:o,events:a}}function zn(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}function Hn(e,t){let n=null;for(const i of e.views.values())n=n||An(i,t);return n}function $n(e,t){if(t._queryParams.loadsAllData())return Gn(e);{const n=t._queryIdentifier;return e.views.get(n)}}function Yn(e,t){return null!=$n(e,t)}function Kn(e){return null!=Gn(e)}function Gn(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Qn=1;class Xn{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Kt(null),this.pendingWriteTree_={visibleWrites:Gt.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Jn(e,t,n,i,r){return function(e,t,n,i,r){(0,s.assert)(i>e.lastWriteId,"Stacking an older write on top of newer ones"),void 0===r&&(r=!0),e.allWrites.push({path:t,snap:n,writeId:i,visible:r}),r&&(e.visibleWrites=Qt(e.visibleWrites,t,n)),e.lastWriteId=i}(e.pendingWriteTree_,t,n,i,r),r?ai(e,new Ft({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,n)):[]}function Zn(e,t,n,i){!function(e,t,n,i){(0,s.assert)(i>e.lastWriteId,"Stacking an older merge on top of newer ones"),e.allWrites.push({path:t,children:n,writeId:i,visible:!0}),e.visibleWrites=Xt(e.visibleWrites,t,n),e.lastWriteId=i}(e.pendingWriteTree_,t,n,i);const r=Kt.fromObject(n);return ai(e,new qt({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,r))}function ei(e,t,n=!1){const i=function(e,t){for(let n=0;n{t=t.set(new _e(e),!0)})),ai(e,new Lt(i.path,t,n))}return[]}function ti(e,t,n){return ai(e,new Ft({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,n))}function ni(e,t,n,i,r=!1){const s=t._path,o=e.syncPointTree_.get(s);let a=[];if(o&&("default"===t._queryIdentifier||Yn(o,t))){const l=Vn(o,t,n,i);0===o.views.size&&(e.syncPointTree_=e.syncPointTree_.remove(s));const c=l.removed;if(a=l.events,!r){const n=-1!==c.findIndex((e=>e._queryParams.loadsAllData())),r=e.syncPointTree_.findOnPath(s,((e,t)=>Kn(t)));if(n&&!r){const t=e.syncPointTree_.subtree(s);if(!t.isEmpty()){const n=function(e){return e.fold(((e,t,n)=>{if(t&&Kn(t)){return[Gn(t)]}{let e=[];return t&&(e=zn(t)),M(n,((t,n)=>{e=e.concat(n)})),e}}))}(t);for(let t=0;t0&&!i)if(n){const n=null;e.listenProvider_.stopListening(mi(t),n)}else c.forEach((t=>{const n=e.queryToTagMap.get(di(t));e.listenProvider_.stopListening(mi(t),n)}))}!function(e,t){for(let n=0;n{const n=Ie(e,r);o=o||Hn(t,n),a=a||Kn(t)}));let l,c=e.syncPointTree_.get(r);if(c?(a=a||Kn(c),o=o||Hn(c,me())):(c=new jn,e.syncPointTree_=e.syncPointTree_.set(r,c)),null!=o)l=!0;else{l=!1,o=ot.EMPTY_NODE;e.syncPointTree_.subtree(r).foreachChild(((e,t)=>{const n=Hn(t,me());n&&(o=o.updateImmediateChild(e,n))}))}const h=Yn(c,t);if(!h&&!t._queryParams.loadsAllData()){const n=di(t);(0,s.assert)(!e.queryToTagMap.has(n),"View does not exist, but we have a tag");const i=Qn++;e.queryToTagMap.set(n,i),e.tagToQueryMap.set(i,n)}let u=Un(c,t,n,an(e.pendingWriteTree_,r),o,l);if(!h&&!a&&!i){const n=$n(c,t);u=u.concat(function(e,t,n){const i=t._path,r=ui(e,t),o=hi(e,n),a=e.listenProvider_.startListening(mi(t),r,o.hashFn,o.onComplete),l=e.syncPointTree_.subtree(i);if(r)(0,s.assert)(!Kn(l.value),"If we're adding a query, it shouldn't be shadowed");else{const t=l.fold(((e,t,n)=>{if(!Se(e)&&t&&Kn(t))return[Gn(t).query];{let e=[];return t&&(e=e.concat(zn(t).map((e=>e.query)))),M(n,((t,n)=>{e=e.concat(n)})),e}}));for(let n=0;n{const i=Hn(n,Ie(e,t));if(i)return i}));return dn(i,t,r,n,!0)}function oi(e,t){const n=t._path;let i=null;e.syncPointTree_.foreachOnPath(n,((e,t)=>{const r=Ie(e,n);i=i||Hn(t,r)}));let r=e.syncPointTree_.get(n);r?i=i||Hn(r,me()):(r=new jn,e.syncPointTree_=e.syncPointTree_.set(n,r));const s=null!=i,o=s?new jt(i,!0,!1):null;return function(e){return Ht(e.viewCache_)}(Wn(r,t,an(e.pendingWriteTree_,t._path),s?o.getNode():ot.EMPTY_NODE,s))}function ai(e,t){return li(t,e.syncPointTree_,null,an(e.pendingWriteTree_,me()))}function li(e,t,n,i){if(Se(e.path))return ci(e,t,n,i);{const r=t.get(me());null==n&&null!=r&&(n=Hn(r,me()));let s=[];const o=ge(e.path),a=e.operationForChild(o),l=t.children.get(o);if(l&&a){const e=n?n.getImmediateChild(o):null,t=yn(i,o);s=s.concat(li(a,l,e,t))}return r&&(s=s.concat(Bn(r,e,i,n))),s}}function ci(e,t,n,i){const r=t.get(me());null==n&&null!=r&&(n=Hn(r,me()));let s=[];return t.children.inorderTraversal(((t,r)=>{const o=n?n.getImmediateChild(t):null,a=yn(i,t),l=e.operationForChild(t);l&&(s=s.concat(ci(l,r,o,a)))})),r&&(s=s.concat(Bn(r,e,i,n))),s}function hi(e,t){const n=t.query,i=ui(e,n);return{hashFn:()=>{const e=function(e){return e.viewCache_.serverCache.getNode()}(t)||ot.EMPTY_NODE;return e.hash()},onComplete:t=>{if("ok"===t)return i?function(e,t,n){const i=pi(e,n);if(i){const n=fi(i),r=n.path,s=n.queryId,o=Ie(r,t);return _i(e,r,new Mt(Ot(s),o))}return[]}(e,n._path,i):function(e,t){return ai(e,new Mt({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t))}(e,n._path);{const i=function(e,t){let n="Unknown Error";"too_big"===e?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?n="Client doesn't have permission to access the desired data.":"unavailable"===e&&(n="The service is unavailable");const i=new Error(e+" at "+t._path.toString()+": "+n);return i.code=e.toUpperCase(),i}(t,n);return ni(e,n,null,i)}}}}function ui(e,t){const n=di(t);return e.queryToTagMap.get(n)}function di(e){return e._path.toString()+"$"+e._queryIdentifier}function pi(e,t){return e.tagToQueryMap.get(t)}function fi(e){const t=e.indexOf("$");return(0,s.assert)(-1!==t&&t{const r=Ii(i,t.getImmediateChild(e),n);r!==i&&(s=s.updateImmediateChild(e,r))})),s}}class Ti{constructor(e="",t=null,n={children:{},childCount:0}){this.name=e,this.parent=t,this.node=n}}function ki(e,t){let n=t instanceof _e?t:new _e(t),i=e,r=ge(n);for(;null!==r;){const e=(0,s.safeGet)(i.node.children,r)||{children:{},childCount:0};i=new Ti(r,i,e),n=ye(n),r=ge(n)}return i}function xi(e){return e.node.value}function Ni(e,t){e.node.value=t,Oi(e)}function Pi(e){return e.node.childCount>0}function Di(e,t){M(e.node.children,((n,i)=>{t(new Ti(n,e,i))}))}function Ai(e,t,n,i){n&&!i&&t(e),Di(e,(e=>{Ai(e,t,!0,i)})),n&&i&&t(e)}function Ri(e){return new _e(null===e.parent?e.name:Ri(e.parent)+"/"+e.name)}function Oi(e){null!==e.parent&&function(e,t,n){const i=function(e){return void 0===xi(e)&&!Pi(e)}(n),r=(0,s.contains)(e.node.children,t);i&&r?(delete e.node.children[t],e.node.childCount--,Oi(e)):i||r||(e.node.children[t]=n.node,e.node.childCount++,Oi(e))}(e.parent,e.name,e)}const Li=/[\[\].#$\/\u0000-\u001F\u007F]/,Mi=/[\[\].#$\u0000-\u001F\u007F]/,Fi=10485760,qi=function(e){return"string"==typeof e&&0!==e.length&&!Li.test(e)},ji=function(e){return"string"==typeof e&&0!==e.length&&!Mi.test(e)},Bi=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!x(e)||e&&"object"==typeof e&&(0,s.contains)(e,".sv")},Wi=function(e,t,n,i){i&&void 0===t||Ui((0,s.errorPrefix)(e,"value"),t,n)},Ui=function(e,t,n){const i=n instanceof _e?new Ne(n,e):n;if(void 0===t)throw new Error(e+"contains undefined "+De(i));if("function"==typeof t)throw new Error(e+"contains a function "+De(i)+" with contents = "+t.toString());if(x(t))throw new Error(e+"contains "+t.toString()+" "+De(i));if("string"==typeof t&&t.length>Fi/3&&(0,s.stringLength)(t)>Fi)throw new Error(e+"contains a string greater than "+Fi+" utf8 bytes "+De(i)+" ('"+t.substring(0,50)+"...')");if(t&&"object"==typeof t){let n=!1,r=!1;if(M(t,((t,o)=>{if(".value"===t)n=!0;else if(".priority"!==t&&".sv"!==t&&(r=!0,!qi(t)))throw new Error(e+" contains an invalid key ("+t+") "+De(i)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');!function(e,t){e.parts_.length>0&&(e.byteLength_+=1),e.parts_.push(t),e.byteLength_+=(0,s.stringLength)(t),Pe(e)}(i,t),Ui(e,o,i),function(e){const t=e.parts_.pop();e.byteLength_-=(0,s.stringLength)(t),e.parts_.length>0&&(e.byteLength_-=1)}(i)})),n&&r)throw new Error(e+' contains ".value" child '+De(i)+" in addition to actual children.")}},Vi=function(e,t,n,i){if(i&&void 0===t)return;const r=(0,s.errorPrefix)(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(r+" must be an object containing the children to replace.");const o=[];M(t,((e,t)=>{const i=new _e(e);if(Ui(r,t,Ee(n,i)),".priority"===we(i)&&!Bi(t))throw new Error(r+"contains an invalid value for '"+i.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(i)})),function(e,t){let n,i;for(n=0;nke(e,t)))}function Zi(e,t,n){Xi(e,n),er(e,(e=>xe(e,t)||xe(t,e)))}function er(e,t){e.recursionDepth_++;let n=!0;for(let i=0;i=0)e.server_=new It(e.repoInfo_,((t,n,i,r)=>{lr(e,t,n,i,r)}),e.authTokenProvider_,e.appCheckProvider_),setTimeout((()=>cr(e,!0)),0);else{if(null!=n){if("object"!=typeof n)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{(0,s.stringify)(n)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}e.persistentConnection_=new Oe(e.repoInfo_,t,((t,n,i,r)=>{lr(e,t,n,i,r)}),(t=>{cr(e,t)}),(t=>{!function(e,t){M(t,((t,n)=>{hr(e,t,n)}))}(e,t)}),e.authTokenProvider_,e.appCheckProvider_,n),e.server_=e.persistentConnection_}e.authTokenProvider_.addTokenChangeListener((t=>{e.server_.refreshAuthToken(t)})),e.appCheckProvider_.addTokenChangeListener((t=>{e.server_.refreshAppCheckToken(t.token)})),e.statsReporter_=function(e,t){const n=e.toString();return ee[n]||(ee[n]=t()),ee[n]}(e.repoInfo_,(()=>new At(e.stats_,e.server_))),e.infoData_=new Tt,e.infoSyncTree_=new Xn({startListening:(t,n,i,r)=>{let s=[];const o=e.infoData_.getNode(t._path);return o.isEmpty()||(s=ti(e.infoSyncTree_,t._path,o),setTimeout((()=>{r("ok")}),0)),s},stopListening:()=>{}}),hr(e,"connected",!1),e.serverSyncTree_=new Xn({startListening:(t,n,i,r)=>(e.server_.listen(t,i,n,((n,i)=>{const s=r(n,i);Zi(e.eventQueue_,t._path,s)})),[]),stopListening:(t,n)=>{e.server_.unlisten(t,n)}})}function or(e){const t=e.infoData_.getNode(new _e(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function ar(e){return yi({timestamp:or(e)})}function lr(e,t,n,i,r){e.dataUpdateCount++;const o=new _e(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let a=[];if(r)if(i){const t=(0,s.map)(n,(e=>ct(e)));a=function(e,t,n,i){const r=pi(e,i);if(r){const i=fi(r),s=i.path,o=i.queryId,a=Ie(s,t),l=Kt.fromObject(n);return _i(e,s,new qt(Ot(o),a,l))}return[]}(e.serverSyncTree_,o,t,r)}else{const t=ct(n);a=ii(e.serverSyncTree_,o,t,r)}else if(i){const t=(0,s.map)(n,(e=>ct(e)));a=function(e,t,n){const i=Kt.fromObject(n);return ai(e,new qt({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,i))}(e.serverSyncTree_,o,t)}else{const t=ct(n);a=ti(e.serverSyncTree_,o,t)}let l=o;a.length>0&&(l=br(e,o)),Zi(e.eventQueue_,l,a)}function cr(e,t){hr(e,"connected",t),!1===t&&function(e){gr(e,"onDisconnectEvents");const t=ar(e),n=kt();Pt(e.onDisconnect_,me(),((i,r)=>{const s=Ei(i,r,e.serverSyncTree_,t);xt(n,i,s)}));let i=[];Pt(n,me(),((t,n)=>{i=i.concat(ti(e.serverSyncTree_,t,n));const r=Tr(e,t);br(e,r)})),e.onDisconnect_=kt(),Zi(e.eventQueue_,me(),i)}(e)}function hr(e,t,n){const i=new _e("/.info/"+t),r=ct(n);e.infoData_.updateSnapshot(i,r);const s=ti(e.infoSyncTree_,i,r);Zi(e.eventQueue_,i,s)}function ur(e){return e.nextWriteId_++}function dr(e,t,n,i,r){gr(e,"set",{path:t.toString(),value:n,priority:i});const s=ar(e),o=ct(n,i),a=si(e.serverSyncTree_,t),l=Si(o,a,s),c=ur(e),h=Jn(e.serverSyncTree_,t,l,c,!0);Xi(e.eventQueue_,h),e.server_.put(t.toString(),o.val(!0),((n,i)=>{const s="ok"===n;s||k("set at "+t+" failed: "+n);const o=ei(e.serverSyncTree_,c,!s);Zi(e.eventQueue_,t,o),vr(e,r,n,i)}));const u=Tr(e,t);br(e,u),Zi(e.eventQueue_,u,[])}function pr(e,t,n){e.server_.onDisconnectCancel(t.toString(),((i,r)=>{"ok"===i&&Nt(e.onDisconnect_,t),vr(e,n,i,r)}))}function fr(e,t,n,i){const r=ct(n);e.server_.onDisconnectPut(t.toString(),r.val(!0),((n,s)=>{"ok"===n&&xt(e.onDisconnect_,t,r),vr(e,i,n,s)}))}function _r(e,t,n){let i;i=".info"===ge(t._path)?ni(e.infoSyncTree_,t,n):ni(e.serverSyncTree_,t,n),Ji(e.eventQueue_,t._path,i)}function mr(e){e.persistentConnection_&&e.persistentConnection_.interrupt(nr)}function gr(e,...t){let n="";e.persistentConnection_&&(n=e.persistentConnection_.id+":"),E(n,...t)}function vr(e,t,n,i){t&&B((()=>{if("ok"===n)t(null);else{const e=(n||"error").toUpperCase();let r=e;i&&(r+=": "+i);const s=new Error(r);s.code=e,t(s)}}))}function yr(e,t,n){return si(e.serverSyncTree_,t,n)||ot.EMPTY_NODE}function wr(e,t=e.transactionQueueTree_){if(t||Ir(e,t),xi(t)){const n=Er(e,t);(0,s.assert)(n.length>0,"Sending zero length transaction queue");n.every((e=>0===e.status))&&function(e,t,n){const i=n.map((e=>e.currentWriteId)),r=yr(e,t,i);let o=r;const a=r.hash();for(let e=0;e{gr(e,"transaction put response",{path:c.toString(),status:i});let r=[];if("ok"===i){const i=[];for(let t=0;tn[t].onComplete(null,!0,n[t].currentOutputSnapshotResolved))),n[t].unwatcher();Ir(e,ki(e.transactionQueueTree_,t)),wr(e,e.transactionQueueTree_),Zi(e.eventQueue_,t,r);for(let e=0;e{wr(e,t)}))}function br(e,t){const n=Cr(e,t),i=Ri(n);return function(e,t,n){if(0===t.length)return;const i=[];let r=[];const o=t.filter((e=>0===e.status)),a=o.map((e=>e.currentWriteId));for(let o=0;o=ir)d=!0,u="maxretry",r=r.concat(ei(e.serverSyncTree_,c.currentWriteId,!0));else{const n=yr(e,c.path,a);c.currentInputSnapshot=n;const i=t[o].update(n.val());if(void 0!==i){Ui("transaction failed: Data returned ",i,c.path);let t=ct(i);"object"==typeof i&&null!=i&&(0,s.contains)(i,".priority")||(t=t.updatePriority(n.getPriority()));const o=c.currentWriteId,l=ar(e),h=Si(t,n,l);c.currentOutputSnapshotRaw=t,c.currentOutputSnapshotResolved=h,c.currentWriteId=ur(e),a.splice(a.indexOf(o),1),r=r.concat(Jn(e.serverSyncTree_,c.path,h,c.currentWriteId,c.applyLocally)),r=r.concat(ei(e.serverSyncTree_,o,!0))}else d=!0,u="nodata",r=r.concat(ei(e.serverSyncTree_,c.currentWriteId,!0))}Zi(e.eventQueue_,n,r),r=[],d&&(t[o].status=2,l=t[o].unwatcher,setTimeout(l,Math.floor(0)),t[o].onComplete&&("nodata"===u?i.push((()=>t[o].onComplete(null,!1,t[o].currentInputSnapshot))):i.push((()=>t[o].onComplete(new Error(u),!1,null)))))}var l;Ir(e,e.transactionQueueTree_);for(let e=0;ee.order-t.order)),n}function Sr(e,t,n){const i=xi(t);if(i)for(let e=0;e{Sr(e,t,n)}))}function Ir(e,t){const n=xi(t);if(n){let e=0;for(let t=0;t0?n:void 0)}Di(t,(t=>{Ir(e,t)}))}function Tr(e,t){const n=Ri(Cr(e,t)),i=ki(e.transactionQueueTree_,t);return function(e,t,n){let i=n?e:e.parent;for(;null!==i;){if(t(i))return!0;i=i.parent}}(i,(t=>{kr(e,t)})),kr(e,i),Ai(i,(t=>{kr(e,t)})),n}function kr(e,t){const n=xi(t);if(n){const i=[];let r=[],o=-1;for(let t=0;t.firebaseio.com instead"),i&&"undefined"!==i||"localhost"===n.domain||T("Cannot parse Firebase url. Please use https://.firebaseio.com"),n.secure||"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&k("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().");const r="ws"===n.scheme||"wss"===n.scheme;return{repoInfo:new Q(n.host,n.secure,i,r,t,"",i!==n.subdomain),path:new _e(n.pathString)}},Nr=function(e){let t="",n="",i="",r="",s="",o=!0,a="https",l=443;if("string"==typeof e){let c=e.indexOf("//");c>=0&&(a=e.substring(0,c-1),e=e.substring(c+2));let h=e.indexOf("/");-1===h&&(h=e.length);let u=e.indexOf("?");-1===u&&(u=e.length),t=e.substring(0,Math.min(h,u)),h0){let i=n[e];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch(e){}t+="/"+i}return t}(e.substring(h,u)));const d=function(e){const t={};"?"===e.charAt(0)&&(e=e.substring(1));for(const n of e.split("&")){if(0===n.length)continue;const i=n.split("=");2===i.length?t[decodeURIComponent(i[0])]=decodeURIComponent(i[1]):k(`Invalid query segment '${n}' in query '${e}'`)}return t}(e.substring(Math.min(e.length,u)));c=t.indexOf(":"),c>=0?(o="https"===a||"wss"===a,l=parseInt(t.substring(c+1),10)):c=t.length;const p=t.slice(0,c);if("localhost"===p.toLowerCase())n="localhost";else if(p.split(".").length<=2)n=p;else{const e=t.indexOf(".");i=t.substring(0,e).toLowerCase(),n=t.substring(e+1),s=i}"ns"in d&&(s=d.ns)}return{host:t,port:l,domain:n,subdomain:i,secure:o,scheme:a,pathString:r,namespace:s}},Pr="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Dr=function(){let e=0;const t=[];return function(n){const i=n===e;let r;e=n;const o=new Array(8);for(r=7;r>=0;r--)o[r]=Pr.charAt(n%64),n=Math.floor(n/64);(0,s.assert)(0===n,"Cannot push at time == 0");let a=o.join("");if(i){for(r=11;r>=0&&63===t[r];r--)t[r]=0;t[r]++}else for(r=0;r<12;r++)t[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)a+=Pr.charAt(t[r]);return(0,s.assert)(20===a.length,"nextPushId: Length should be 20."),a}}();class Ar{constructor(e,t,n,i){this.eventType=e,this.eventRegistration=t,this.snapshot=n,this.prevName=i}getPath(){const e=this.snapshot.ref;return"value"===this.eventType?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+(0,s.stringify)(this.snapshot.exportVal())}}class Rr{constructor(e,t,n){this.eventRegistration=e,this.error=t,this.path=n}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class Or{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return(0,s.assert)(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class Lr{constructor(e,t){this._repo=e,this._path=t}cancel(){const e=new s.Deferred;return pr(this._repo,this._path,e.wrapCallback((()=>{}))),e.promise}remove(){Ki("OnDisconnect.remove",this._path);const e=new s.Deferred;return fr(this._repo,this._path,null,e.wrapCallback((()=>{}))),e.promise}set(e){Ki("OnDisconnect.set",this._path),Wi("OnDisconnect.set",e,this._path,!1);const t=new s.Deferred;return fr(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}setWithPriority(e,t){Ki("OnDisconnect.setWithPriority",this._path),Wi("OnDisconnect.setWithPriority",e,this._path,!1),zi("OnDisconnect.setWithPriority",t,!1);const n=new s.Deferred;return function(e,t,n,i,r){const s=ct(n,i);e.server_.onDisconnectPut(t.toString(),s.val(!0),((n,i)=>{"ok"===n&&xt(e.onDisconnect_,t,s),vr(0,r,n,i)}))}(this._repo,this._path,e,t,n.wrapCallback((()=>{}))),n.promise}update(e){Ki("OnDisconnect.update",this._path),Vi("OnDisconnect.update",e,this._path,!1);const t=new s.Deferred;return function(e,t,n,i){if((0,s.isEmpty)(n))return E("onDisconnect().update() called with empty data. Don't do anything."),void vr(0,i,"ok",void 0);e.server_.onDisconnectMerge(t.toString(),n,((r,s)=>{"ok"===r&&M(n,((n,i)=>{const r=ct(i);xt(e.onDisconnect_,Ee(t,n),r)})),vr(0,i,r,s)}))}(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}}class Mr{constructor(e,t,n,i){this._repo=e,this._path=t,this._queryParams=n,this._orderByCalled=i}get key(){return Se(this._path)?null:we(this._path)}get ref(){return new Br(this._repo,this._path)}get _queryIdentifier(){const e=St(this._queryParams),t=O(e);return"{}"===t?"default":t}get _queryObject(){return St(this._queryParams)}isEqual(e){if(!((e=(0,s.getModularInstance)(e))instanceof Mr))return!1;const t=this._repo===e._repo,n=ke(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return t&&n&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+function(e){let t="";for(let n=e.pieceNum_;ne(new Wr(n,zr(this.ref,t),Je))))}hasChild(e){const t=new _e(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function Ur(e,t){return(e=(0,s.getModularInstance)(e))._checkNotDeleted("ref"),void 0!==t?zr(e._root,t):e._root}function Vr(e,t){(e=(0,s.getModularInstance)(e))._checkNotDeleted("refFromURL");const n=xr(t,e._repo.repoInfo_.nodeAdmin);Gi("refFromURL",n);const i=n.repoInfo;return e._repo.repoInfo_.isCustomHost()||i.host===e._repo.repoInfo_.host||T("refFromURL: Host name does not match the current database: (found "+i.host+" but expected "+e._repo.repoInfo_.host+")"),Ur(e,n.path.toString())}function zr(e,t){return null===ge((e=(0,s.getModularInstance)(e))._path)?Yi("child","path",t,!1):$i("child","path",t,!1),new Br(e._repo,Ee(e._path,t))}function Hr(e){return e=(0,s.getModularInstance)(e),new Lr(e._repo,e._path)}function $r(e,t){e=(0,s.getModularInstance)(e),Ki("push",e._path),Wi("push",t,e._path,!0);const n=or(e._repo),i=Dr(n),r=zr(e,i),o=zr(e,i);let a;return a=null!=t?Kr(o,t).then((()=>o)):Promise.resolve(o),r.then=a.then.bind(a),r.catch=a.then.bind(a,void 0),r}function Yr(e){return Ki("remove",e._path),Kr(e,null)}function Kr(e,t){e=(0,s.getModularInstance)(e),Ki("set",e._path),Wi("set",t,e._path,!1);const n=new s.Deferred;return dr(e._repo,e._path,t,null,n.wrapCallback((()=>{}))),n.promise}function Gr(e,t){e=(0,s.getModularInstance)(e),Ki("setPriority",e._path),zi("setPriority",t,!1);const n=new s.Deferred;return dr(e._repo,Ee(e._path,".priority"),t,null,n.wrapCallback((()=>{}))),n.promise}function Qr(e,t,n){if(Ki("setWithPriority",e._path),Wi("setWithPriority",t,e._path,!1),zi("setWithPriority",n,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";const i=new s.Deferred;return dr(e._repo,e._path,t,n,i.wrapCallback((()=>{}))),i.promise}function Xr(e,t){Vi("update",t,e._path,!1);const n=new s.Deferred;return function(e,t,n,i){gr(e,"update",{path:t.toString(),value:n});let r=!0;const s=ar(e),o={};if(M(n,((n,i)=>{r=!1,o[n]=Ei(Ee(t,n),ct(i),e.serverSyncTree_,s)})),r)E("update() called with empty data. Don't do anything."),vr(0,i,"ok",void 0);else{const r=ur(e),s=Zn(e.serverSyncTree_,t,o,r);Xi(e.eventQueue_,s),e.server_.merge(t.toString(),n,((n,s)=>{const o="ok"===n;o||k("update at "+t+" failed: "+n);const a=ei(e.serverSyncTree_,r,!o),l=a.length>0?br(e,t):t;Zi(e.eventQueue_,l,a),vr(0,i,n,s)})),M(n,(n=>{const i=Tr(e,Ee(t,n));br(e,i)})),Zi(e.eventQueue_,t,[])}}(e._repo,e._path,t,n.wrapCallback((()=>{}))),n.promise}function Jr(e){e=(0,s.getModularInstance)(e);const t=new Or((()=>{})),n=new Zr(t);return function(e,t,n){const i=oi(e.serverSyncTree_,t);return null!=i?Promise.resolve(i):e.server_.get(t).then((i=>{const r=ct(i).withIndex(t._queryParams.getIndex());let s;if(ri(e.serverSyncTree_,t,n,!0),t._queryParams.loadsAllData())s=ti(e.serverSyncTree_,t._path,r);else{const n=ui(e.serverSyncTree_,t);s=ii(e.serverSyncTree_,t._path,r,n)}return Zi(e.eventQueue_,t._path,s),ni(e.serverSyncTree_,t,n,null,!0),r}),(n=>(gr(e,"get for query "+(0,s.stringify)(t)+" failed: "+n),Promise.reject(new Error(n)))))}(e._repo,e,n).then((t=>new Wr(t,new Br(e._repo,e._path),e._queryParams.getIndex())))}class Zr{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){const n=t._queryParams.getIndex();return new Ar("value",this,new Wr(e.snapshotNode,new Br(t._repo,t._path),n))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Rr(this,e,t):null}matches(e){return e instanceof Zr&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class es{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){let t="children_added"===e?"child_added":e;return t="children_removed"===t?"child_removed":t,this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Rr(this,e,t):null}createEvent(e,t){(0,s.assert)(null!=e.childName,"Child events should have a childName.");const n=zr(new Br(t._repo,t._path),e.childName),i=t._queryParams.getIndex();return new Ar(e.type,this,new Wr(e.snapshotNode,n,i),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof es&&(this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)))}hasAnyCallback(){return!!this.callbackContext}}function ts(e,t,n,i,r){let s;if("object"==typeof i&&(s=void 0,r=i),"function"==typeof i&&(s=i),r&&r.onlyOnce){const t=n,i=(n,i)=>{_r(e._repo,e,a),t(n,i)};i.userCallback=n.userCallback,i.context=n.context,n=i}const o=new Or(n,s||void 0),a="value"===t?new Zr(o):new es(t,o);return function(e,t,n){let i;i=".info"===ge(t._path)?ri(e.infoSyncTree_,t,n):ri(e.serverSyncTree_,t,n),Ji(e.eventQueue_,t._path,i)}(e._repo,e,a),()=>_r(e._repo,e,a)}function ns(e,t,n,i){return ts(e,"value",t,n,i)}function is(e,t,n,i){return ts(e,"child_added",t,n,i)}function rs(e,t,n,i){return ts(e,"child_changed",t,n,i)}function ss(e,t,n,i){return ts(e,"child_moved",t,n,i)}function os(e,t,n,i){return ts(e,"child_removed",t,n,i)}function as(e,t,n){let i=null;const r=n?new Or(n):null;"value"===t?i=new Zr(r):t&&(i=new es(t,r)),_r(e._repo,e,i)}class ls{}class cs extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){Wi("endAt",this._value,e._path,!0);const t=bt(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function hs(e,t){return Hi("endAt","key",t,!0),new cs(e,t)}class us extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){Wi("endBefore",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===je||n?bt(e,t,n):bt(e,t,N),i.endBeforeSet_=!0,i}(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function ds(e,t){return Hi("endBefore","key",t,!0),new us(e,t)}class ps extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){Wi("startAt",this._value,e._path,!0);const t=wt(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function fs(e=null,t){return Hi("startAt","key",t,!0),new ps(e,t)}class _s extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){Wi("startAfter",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===je||n?wt(e,t,n):wt(e,t,P),i.startAfterSet_=!0,i}(e._queryParams,this._value,this._key);if(jr(t),qr(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new Mr(e._repo,e._path,t,e._orderByCalled)}}function ms(e,t){return Hi("startAfter","key",t,!0),new _s(e,t)}class gs extends ls{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new Mr(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="l",n}(e._queryParams,this._limit),e._orderByCalled)}}function vs(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new gs(e)}class ys extends ls{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new Mr(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="r",n}(e._queryParams,this._limit),e._orderByCalled)}}function ws(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new ys(e)}class bs extends ls{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Fr(e,"orderByChild");const t=new _e(this._path);if(Se(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");const n=new ht(t),i=Ct(e._queryParams,n);return qr(i),new Mr(e._repo,e._path,i,!0)}}function Cs(e){if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return $i("orderByChild","path",e,!1),new bs(e)}class Es extends ls{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){Fr(e,"orderByKey");const t=Ct(e._queryParams,je);return qr(t),new Mr(e._repo,e._path,t,!0)}}function Ss(){return new Es}class Is extends ls{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){Fr(e,"orderByPriority");const t=Ct(e._queryParams,Je);return qr(t),new Mr(e._repo,e._path,t,!0)}}function Ts(){return new Is}class ks extends ls{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){Fr(e,"orderByValue");const t=Ct(e._queryParams,ut);return qr(t),new Mr(e._repo,e._path,t,!0)}}function xs(){return new ks}class Ns extends ls{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(Wi("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new cs(this._value,this._key)._apply(new ps(this._value,this._key)._apply(e))}}function Ps(e,t){return Hi("equalTo","key",t,!0),new Ns(e,t)}function Ds(e,...t){let n=(0,s.getModularInstance)(e);for(const e of t)n=e._apply(n);return n}!function(e){(0,s.assert)(!Fn,"__referenceConstructor has already been defined"),Fn=e}(Br),function(e){(0,s.assert)(!qn,"__referenceConstructor has already been defined"),qn=e}(Br);const As="FIREBASE_DATABASE_EMULATOR_HOST",Rs={};let Os=!1;function Ls(e,t,n,i,r){let s=i||e.options.databaseURL;void 0===s&&(e.options.projectId||T("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),E("Using default host for project ",e.options.projectId),s=`${e.options.projectId}-default-rtdb.firebaseio.com`);let o,a,l=xr(s,r),c=l.repoInfo;"undefined"!=typeof process&&(a="MISSING_ENV_VAR"[As]),a?(o=!0,s=`http://${a}?ns=${c.namespace}`,l=xr(s,r),c=l.repoInfo):o=!l.repoInfo.secure;const h=r&&o?new z(z.OWNER):new V(e.name,e.options,t);Gi("Invalid Firebase Database URL",l),Se(l.path)||T("Database URL must point to the root of a Firebase Database (not including a child path).");const u=function(e,t,n,i){let r=Rs[t.name];r||(r={},Rs[t.name]=r);let s=r[e.toURLString()];s&&T("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.");return s=new rr(e,Os,n,i),r[e.toURLString()]=s,s}(c,e,h,new U(e.name,n));return new Ms(u,e)}class Ms{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(sr(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new Br(this._repo,me())),this._rootInternal}_delete(){return null!==this._rootInternal&&(!function(e,t){const n=Rs[t];n&&n[e.key]===e||T(`Database ${t}(${e.repoInfo_}) has already been deleted.`),mr(e),delete n[e.key]}(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&T("Cannot call "+e+" on a deleted database.")}}function Fs(){le.IS_TRANSPORT_INITIALIZED&&k("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function qs(){Fs(),re.forceDisallow()}function js(){Fs(),ae.forceDisallow(),re.forceAllow()}function Bs(e=(0,i.getApp)(),t){const n=(0,i._getProvider)(e,"database").getImmediate({identifier:t});if(!n._instanceStarted){const e=(0,s.getDefaultEmulatorHostnameAndPort)("database");e&&Ws(n,...e)}return n}function Ws(e,t,n,i={}){(e=(0,s.getModularInstance)(e))._checkNotDeleted("useEmulator"),e._instanceStarted&&T("Cannot call useEmulator() after instance has already been initialized.");const r=e._repoInternal;let o;if(r.repoInfo_.nodeAdmin)i.mockUserToken&&T('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new z(z.OWNER);else if(i.mockUserToken){const t="string"==typeof i.mockUserToken?i.mockUserToken:(0,s.createMockUserToken)(i.mockUserToken,e.app.options.projectId);o=new z(t)}!function(e,t,n,i){e.repoInfo_=new Q(`${t}:${n}`,!1,e.repoInfo_.namespace,e.repoInfo_.webSocketOnly,e.repoInfo_.nodeAdmin,e.repoInfo_.persistenceKey,e.repoInfo_.includeNamespaceInQueryParams,!0),i&&(e.authTokenProvider_=i)}(r,t,n,o)}function Us(e){(e=(0,s.getModularInstance)(e))._checkNotDeleted("goOffline"),mr(e._repo)}function Vs(e){var t;(e=(0,s.getModularInstance)(e))._checkNotDeleted("goOnline"),(t=e._repo).persistentConnection_&&t.persistentConnection_.resume(nr)}function zs(e,t){C(e,t)}const Hs={".sv":"timestamp"};function $s(){return Hs}function Ys(e){return{".sv":{increment:e}}}class Ks{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function Gs(e,t,n){var i;if(e=(0,s.getModularInstance)(e),Ki("Reference.transaction",e._path),".length"===e.key||".keys"===e.key)throw"Reference.transaction failed: "+e.key+" is a read-only object.";const r=null===(i=null==n?void 0:n.applyLocally)||void 0===i||i,o=new s.Deferred,a=ns(e,(()=>{}));return function(e,t,n,i,r,o){gr(e,"transaction on "+t);const a={path:t,update:n,onComplete:i,status:null,order:g(),applyLocally:o,retryCount:0,unwatcher:r,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},l=yr(e,t,void 0);a.currentInputSnapshot=l;const c=a.update(l.val());if(void 0===c)a.unwatcher(),a.currentOutputSnapshotRaw=null,a.currentOutputSnapshotResolved=null,a.onComplete&&a.onComplete(null,!1,a.currentInputSnapshot);else{Ui("transaction failed: Data returned ",c,a.path),a.status=0;const n=ki(e.transactionQueueTree_,t),i=xi(n)||[];let r;i.push(a),Ni(n,i),"object"==typeof c&&null!==c&&(0,s.contains)(c,".priority")?(r=(0,s.safeGet)(c,".priority"),(0,s.assert)(Bi(r),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):r=(si(e.serverSyncTree_,t)||ot.EMPTY_NODE).getPriority().val();const o=ar(e),h=ct(c,r),u=Si(h,l,o);a.currentOutputSnapshotRaw=h,a.currentOutputSnapshotResolved=u,a.currentWriteId=ur(e);const d=Jn(e.serverSyncTree_,t,u,a.currentWriteId,a.applyLocally);Zi(e.eventQueue_,t,d),wr(e,e.transactionQueueTree_)}}(e._repo,e._path,t,((t,n,i)=>{let r=null;t?o.reject(t):(r=new Wr(i,new Br(e._repo,e._path),Je),o.resolve(new Ks(n,r)))}),a,r),o.promise}Oe.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},Oe.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)};const Qs=function(e){const t=Oe.prototype.put;return Oe.prototype.put=function(n,i,r,s){void 0!==s&&(s=e()),t.call(this,n,i,r,s)},function(){Oe.prototype.put=t}},Xs=function(e){!function(e){Os=e}(e)};function Js({app:e,url:t,version:n,customAuthImpl:i,customAppCheckImpl:s,nodeAdmin:o=!1}){h(n);const a=new r.ComponentContainer("database-standalone"),l=new r.Provider("auth-internal",a);let c;return s&&(c=new r.Provider("app-check-internal",a),c.setComponent(new r.Component("app-check-internal",(()=>s),"PRIVATE"))),l.setComponent(new r.Component("auth-internal",(()=>i),"PRIVATE")),Ls(e,l,c,t,o)}var Zs;h(i.SDK_VERSION),(0,i._registerComponent)(new r.Component("database",((e,{instanceIdentifier:t})=>Ls(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)),"PUBLIC").setMultipleInstances(!0)),(0,i.registerVersion)(a,l,Zs),(0,i.registerVersion)(a,l,"esm2017")},"./node_modules/@firebase/util/dist/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{CONSTANTS:()=>i,DecodeBase64StringError:()=>l,Deferred:()=>w,ErrorFactory:()=>F,FirebaseError:()=>M,MAX_VALUE_MILLIS:()=>ge,RANDOM_FACTOR:()=>ve,Sha1:()=>ne,areCookiesEnabled:()=>L,assert:()=>r,assertionError:()=>s,async:()=>se,base64:()=>a,base64Decode:()=>u,base64Encode:()=>c,base64urlEncodeWithoutPadding:()=>h,calculateBackoffMillis:()=>ye,contains:()=>$,createMockUserToken:()=>b,createSubscribe:()=>ie,decode:()=>W,deepCopy:()=>d,deepEqual:()=>Q,deepExtend:()=>p,errorPrefix:()=>le,extractQuerystring:()=>te,getDefaultAppConfig:()=>v,getDefaultEmulatorHost:()=>m,getDefaultEmulatorHostnameAndPort:()=>g,getDefaults:()=>_,getExperimentalSetting:()=>y,getGlobal:()=>f,getModularInstance:()=>be,getUA:()=>C,isAdmin:()=>H,isBrowser:()=>I,isBrowserExtension:()=>T,isElectron:()=>x,isEmpty:()=>K,isIE:()=>N,isIndexedDBAvailable:()=>R,isMobileCordova:()=>E,isNode:()=>S,isNodeSdk:()=>D,isReactNative:()=>k,isSafari:()=>A,isUWP:()=>P,isValidFormat:()=>z,isValidTimestamp:()=>U,issuedAtTime:()=>V,jsonEval:()=>j,map:()=>G,ordinal:()=>we,promiseWithTimeout:()=>J,querystring:()=>Z,querystringDecode:()=>ee,safeGet:()=>Y,stringLength:()=>pe,stringToByteArray:()=>de,stringify:()=>B,uuidv4:()=>fe,validateArgCount:()=>ae,validateCallback:()=>he,validateContextObject:()=>ue,validateIndexedDBOpenable:()=>O,validateNamespace:()=>ce});const i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},r=function(e,t){if(!e)throw s(t)},s=function(e){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},o=function(e){const t=[];let n=0;for(let i=0;i>6|192,t[n++]=63&r|128):55296==(64512&r)&&i+1>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128)}return t},a={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let t=0;t>2,h=(3&r)<<4|o>>4;let u=(15&o)<<2|l>>6,d=63&l;a||(d=64,s||(u=64)),i.push(n[c],n[h],n[u],n[d])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(o(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,i=0;for(;n191&&r<224){const s=e[n++];t[i++]=String.fromCharCode((31&r)<<6|63&s)}else if(r>239&&r<365){const s=((7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[i++]=String.fromCharCode(55296+(s>>10)),t[i++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],o=e[n++];t[i++]=String.fromCharCode((15&r)<<12|(63&s)<<6|63&o)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,i=[];for(let t=0;t>4;if(i.push(c),64!==o){const e=s<<4&240|o>>2;if(i.push(e),64!==a){const e=o<<6&192|a;i.push(e)}}}return i},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class l extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const c=function(e){const t=o(e);return a.encodeByteArray(t,!0)},h=function(e){return c(e).replace(/\./g,"")},u=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function d(e){return p(void 0,e)}function p(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const n in t)t.hasOwnProperty(n)&&"__proto__"!==n&&(e[n]=p(e[n],t[n]));return e}function f(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("Unable to locate global object.")}const _=()=>{try{return f().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process)return;const e="MISSING_ENV_VAR".__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&u(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},m=e=>{var t,n;return null===(n=null===(t=_())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]},g=e=>{const t=m(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const i=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),i]:[t.substring(0,n),i]},v=()=>{var e;return null===(e=_())||void 0===e?void 0:e.config},y=e=>{var t;return null===(t=_())||void 0===t?void 0:t[`_${e}`]};class w{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function b(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",i=e.iat||0,r=e.sub||e.user_id;if(!r)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const s=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:i,exp:i+3600,auth_time:i,sub:r,user_id:r,firebase:{sign_in_provider:"custom",identities:{}}},e);return[h(JSON.stringify({alg:"none",type:"JWT"})),h(JSON.stringify(s)),""].join(".")}function C(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function E(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(C())}function S(){var e;const t=null===(e=_())||void 0===e?void 0:e.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(n.g.process)}catch(e){return!1}}function I(){return"object"==typeof self&&self.self===self}function T(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function k(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function x(){return C().indexOf("Electron/")>=0}function N(){const e=C();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}function P(){return C().indexOf("MSAppHost/")>=0}function D(){return!0===i.NODE_CLIENT||!0===i.NODE_ADMIN}function A(){return!S()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function R(){try{return"object"==typeof indexedDB}catch(e){return!1}}function O(){return new Promise(((e,t)=>{try{let n=!0;const i="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(i);r.onsuccess=()=>{r.result.close(),n||self.indexedDB.deleteDatabase(i),e(!0)},r.onupgradeneeded=()=>{n=!1},r.onerror=()=>{var e;t((null===(e=r.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}function L(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class M extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,M.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,F.prototype.create)}}class F{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},i=`${this.service}/${e}`,r=this.errors[e],s=r?function(e,t){return e.replace(q,((e,n)=>{const i=t[n];return null!=i?String(i):`<${n}?>`}))}(r,n):"Error",o=`${this.serviceName}: ${s} (${i}).`;return new M(i,o,n)}}const q=/\{\$([^}]+)}/g;function j(e){return JSON.parse(e)}function B(e){return JSON.stringify(e)}const W=function(e){let t={},n={},i={},r="";try{const s=e.split(".");t=j(u(s[0])||""),n=j(u(s[1])||""),r=s[2],i=n.d||{},delete n.d}catch(e){}return{header:t,claims:n,data:i,signature:r}},U=function(e){const t=W(e).claims,n=Math.floor((new Date).getTime()/1e3);let i=0,r=0;return"object"==typeof t&&(t.hasOwnProperty("nbf")?i=t.nbf:t.hasOwnProperty("iat")&&(i=t.iat),r=t.hasOwnProperty("exp")?t.exp:i+86400),!!n&&!!i&&!!r&&n>=i&&n<=r},V=function(e){const t=W(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null},z=function(e){const t=W(e).claims;return!!t&&"object"==typeof t&&t.hasOwnProperty("iat")},H=function(e){const t=W(e).claims;return"object"==typeof t&&!0===t.admin};function $(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Y(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function K(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function G(e,t,n){const i={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=t.call(n,e[r],r,e));return i}function Q(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);for(const r of n){if(!i.includes(r))return!1;const n=e[r],s=t[r];if(X(n)&&X(s)){if(!Q(n,s))return!1}else if(n!==s)return!1}for(const e of i)if(!n.includes(e))return!1;return!0}function X(e){return null!==e&&"object"==typeof e}function J(e,t=2e3){const n=new w;return setTimeout((()=>n.reject("timeout!")),t),e.then(n.resolve,n.reject),n.promise}function Z(e){const t=[];for(const[n,i]of Object.entries(e))Array.isArray(i)?i.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));return t.length?"&"+t.join("&"):""}function ee(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,i]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(i)}})),t}function te(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class ne{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e>>31)}let i,r,s=this.chain_[0],o=this.chain_[1],a=this.chain_[2],l=this.chain_[3],c=this.chain_[4];for(let e=0;e<80;e++){e<40?e<20?(i=l^o&(a^l),r=1518500249):(i=o^a^l,r=1859775393):e<60?(i=o&a|l&(o|a),r=2400959708):(i=o^a^l,r=3395469782);const t=(s<<5|s>>>27)+i+c+r+n[e]&4294967295;c=l,l=a,a=4294967295&(o<<30|o>>>2),o=s,s=t}this.chain_[0]=this.chain_[0]+s&4294967295,this.chain_[1]=this.chain_[1]+o&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+l&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295}update(e,t){if(null==e)return;void 0===t&&(t=e.length);const n=t-this.blockSize;let i=0;const r=this.buf_;let s=this.inbuf_;for(;i=56;e--)this.buf_[e]=255&t,t/=256;this.compress_(this.buf_);let n=0;for(let t=0;t<5;t++)for(let i=24;i>=0;i-=8)e[n]=this.chain_[t]>>i&255,++n;return e}}function ie(e,t){const n=new re(e,t);return n.subscribe.bind(n)}class re{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let i;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");i=function(e,t){if("object"!=typeof e||null===e)return!1;for(const n of t)if(n in e&&"function"==typeof e[n])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===i.next&&(i.next=oe),void 0===i.error&&(i.error=oe),void 0===i.complete&&(i.complete=oe);const r=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(e){}})),this.observers.push(i),r}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function se(e,t){return(...n)=>{Promise.resolve(!0).then((()=>{e(...n)})).catch((e=>{t&&t(e)}))}}function oe(){}const ae=function(e,t,n,i){let r;if(in&&(r=0===n?"none":"no more than "+n),r){throw new Error(e+" failed: Was called with "+i+(1===i?" argument.":" arguments.")+" Expects "+r+".")}};function le(e,t){return`${e} failed: ${t} argument `}function ce(e,t,n){if((!n||t)&&"string"!=typeof t)throw new Error(le(e,"namespace")+"must be a valid firebase namespace.")}function he(e,t,n,i){if((!i||n)&&"function"!=typeof n)throw new Error(le(e,t)+"must be a valid function.")}function ue(e,t,n,i){if((!i||n)&&("object"!=typeof n||null===n))throw new Error(le(e,t)+"must be a valid context object.")}const de=function(e){const t=[];let n=0;for(let i=0;i=55296&&s<=56319){const t=s-55296;i++,r(i>6|192,t[n++]=63&s|128):s<65536?(t[n++]=s>>12|224,t[n++]=s>>6&63|128,t[n++]=63&s|128):(t[n++]=s>>18|240,t[n++]=s>>12&63|128,t[n++]=s>>6&63|128,t[n++]=63&s|128)}return t},pe=function(e){let t=0;for(let n=0;n=55296&&i<=56319?(t+=4,n++):t+=3}return t},fe=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},_e=1e3,me=2,ge=144e5,ve=.5;function ye(e,t=_e,n=me){const i=t*Math.pow(n,e),r=Math.round(ve*i*(Math.random()-.5)*2);return Math.min(ge,i+r)}function we(e){return Number.isFinite(e)?e+function(e){e=Math.abs(e);const t=e%100;if(t>=10&&t<=20)return"th";const n=e%10;if(1===n)return"st";if(2===n)return"nd";if(3===n)return"rd";return"th"}(e):`${e}`}function be(e){return e&&e._delegate?e._delegate:e}},"./js/main/code-anime/item.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{Item:()=>c});var i=n("./js/main/code-anime/utils.js");function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];this.requestId||(this.requestId=requestAnimationFrame((function(){return e.render(t)})))}},{key:"stopRendering",value:function(){this.requestId&&(window.cancelAnimationFrame(this.requestId),this.requestId=void 0)}},{key:"render",value:function(e){this.requestId=void 0;var t=this.scrollVal.x-window.scrollX,n=this.scrollVal.y-window.scrollY;for(var r in this.renderedStyles.x.current=l.x-(t+this.rect.left),this.renderedStyles.y.current=l.y-(n+this.rect.top),e&&(this.renderedStyles.x.previous=this.renderedStyles.x.current,this.renderedStyles.y.previous=this.renderedStyles.y.current),this.renderedStyles)this.renderedStyles[r].previous=(0,i.lerp)(this.renderedStyles[r].previous,this.renderedStyles[r].current,this.renderedStyles[r].amt);gsap.set(this.DOM.el,{"--x":this.renderedStyles.x.previous,"--y":this.renderedStyles.y.previous}),this.DOM.deco.innerHTML=this.randomString,this.loopRender()}}],t&&s(e.prototype,t),n&&s(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}()},"./js/main/code-anime/utils.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{getMousePos:()=>r,getRandomString:()=>s,lerp:()=>i});var i=function(e,t,n){return(1-n)*e+n*t},r=function(e){return{x:e.clientX,y:e.clientY}},s=function(e){for(var t="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i{"use strict";n.r(t),n.d(t,{default:()=>i});var i=function(){function e(t){void 0===t&&(t={}),this.options=Object.assign({},{el:null,container:document.body,className:"mf-cursor",innerClassName:"mf-cursor-inner",textClassName:"mf-cursor-text",mediaClassName:"mf-cursor-media",mediaBoxClassName:"mf-cursor-media-box",iconSvgClassName:"mf-svgsprite",iconSvgNamePrefix:"-",iconSvgSrc:"",dataAttr:"cursor",hiddenState:"-hidden",textState:"-text",iconState:"-icon",activeState:"-active",mediaState:"-media",stateDetection:{"-pointer":"a,button"},visible:!0,visibleOnState:!1,speed:.55,ease:"expo.out",overwrite:!0,skewing:0,skewingText:2,skewingIcon:2,skewingMedia:2,skewingDelta:.001,skewingDeltaMax:.15,stickDelta:.15,showTimeout:0,hideOnLeave:!0,hideTimeout:300,hideMediaTimeout:300,initialPos:[-window.innerWidth,-window.innerHeight]},t),this.options.visible&&null==t.stateDetection&&(this.options.stateDetection["-hidden"]="iframe"),this.gsap=e.gsap||window.gsap,this.el="string"==typeof this.options.el?document.querySelector(this.options.el):this.options.el,this.container="string"==typeof this.options.container?document.querySelector(this.options.container):this.options.container,this.skewing=this.options.skewing,this.pos={x:this.options.initialPos[0],y:this.options.initialPos[1]},this.vel={x:0,y:0},this.event={},this.events=[],this.init()}e.registerGSAP=function(t){e.gsap=t};var t=e.prototype;return t.init=function(){this.el||this.create(),this.createSetter(),this.bind(),this.render(!0),this.ticker=this.render.bind(this,!1),this.gsap.ticker.add(this.ticker)},t.create=function(){this.el=document.createElement("div"),this.el.className=this.options.className,this.el.classList.add(this.options.hiddenState),this.inner=document.createElement("div"),this.inner.className=this.options.innerClassName,this.text=document.createElement("div"),this.text.className=this.options.textClassName,this.media=document.createElement("div"),this.media.className=this.options.mediaClassName,this.mediaBox=document.createElement("div"),this.mediaBox.className=this.options.mediaBoxClassName,this.media.appendChild(this.mediaBox),this.inner.appendChild(this.media),this.inner.appendChild(this.text),this.el.appendChild(this.inner),this.container.appendChild(this.el)},t.createSetter=function(){this.setter={x:this.gsap.quickSetter(this.el,"x","px"),y:this.gsap.quickSetter(this.el,"y","px"),rotation:this.gsap.quickSetter(this.el,"rotation","deg"),scaleX:this.gsap.quickSetter(this.el,"scaleX"),scaleY:this.gsap.quickSetter(this.el,"scaleY"),wc:this.gsap.quickSetter(this.el,"willChange"),inner:{rotation:this.gsap.quickSetter(this.inner,"rotation","deg")}}},t.bind=function(){var e=this;this.event.mouseleave=function(){return e.hide()},this.event.mouseenter=function(){return e.show()},this.event.mousedown=function(){return e.addState(e.options.activeState)},this.event.mouseup=function(){return e.removeState(e.options.activeState)},this.event.mousemoveOnce=function(){return e.show()},this.event.mousemove=function(t){e.gsap.to(e.pos,{x:e.stick?e.stick.x-(e.stick.x-t.clientX)*e.options.stickDelta:t.clientX,y:e.stick?e.stick.y-(e.stick.y-t.clientY)*e.options.stickDelta:t.clientY,overwrite:e.options.overwrite,ease:e.options.ease,duration:e.visible?e.options.speed:0,onUpdate:function(){return e.vel={x:t.clientX-e.pos.x,y:t.clientY-e.pos.y}}})},this.event.mouseover=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var i in e.options.stateDetection)n.matches(e.options.stateDetection[i])&&e.addState(i);if(e.options.dataAttr){var r=e.getFromDataset(n);r.state&&e.addState(r.state),r.text&&e.setText(r.text),r.icon&&e.setIcon(r.icon),r.img&&e.setImg(r.img),r.video&&e.setVideo(r.video),void 0!==r.show&&e.show(),void 0!==r.stick&&e.setStick(r.stick||n)}}},this.event.mouseout=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var i in e.options.stateDetection)n.matches(e.options.stateDetection[i])&&e.removeState(i);if(e.options.dataAttr){var r=e.getFromDataset(n);r.state&&e.removeState(r.state),r.text&&e.removeText(),r.icon&&e.removeIcon(),r.img&&e.removeImg(),r.video&&e.removeVideo(),void 0!==r.show&&e.hide(),void 0!==r.stick&&e.removeStick()}}},this.options.hideOnLeave&&this.container.addEventListener("mouseleave",this.event.mouseleave,{passive:!0}),this.options.visible&&this.container.addEventListener("mouseenter",this.event.mouseenter,{passive:!0}),this.options.activeState&&(this.container.addEventListener("mousedown",this.event.mousedown,{passive:!0}),this.container.addEventListener("mouseup",this.event.mouseup,{passive:!0})),this.container.addEventListener("mousemove",this.event.mousemove,{passive:!0}),this.options.visible&&this.container.addEventListener("mousemove",this.event.mousemoveOnce,{passive:!0,once:!0}),(this.options.stateDetection||this.options.dataAttr)&&(this.container.addEventListener("mouseover",this.event.mouseover,{passive:!0}),this.container.addEventListener("mouseout",this.event.mouseout,{passive:!0}))},t.render=function(e){if(!0===e||0!==this.vel.y&&0!==this.vel.x){if(this.trigger("render"),this.setter.wc("transform"),this.setter.x(this.pos.x),this.setter.y(this.pos.y),this.skewing){var t=Math.sqrt(Math.pow(this.vel.x,2)+Math.pow(this.vel.y,2)),n=Math.min(t*this.options.skewingDelta,this.options.skewingDeltaMax)*this.skewing,i=180*Math.atan2(this.vel.y,this.vel.x)/Math.PI;this.setter.rotation(i),this.setter.scaleX(1+n),this.setter.scaleY(1-n),this.setter.inner.rotation(-i)}}else this.setter.wc("auto")},t.show=function(){var e=this;this.trigger("show"),clearInterval(this.visibleInt),this.visibleInt=setTimeout((function(){e.el.classList.remove(e.options.hiddenState),e.visible=!0,e.render(!0)}),this.options.showTimeout)},t.hide=function(){var e=this;this.trigger("hide"),clearInterval(this.visibleInt),this.el.classList.add(this.options.hiddenState),this.visibleInt=setTimeout((function(){return e.visible=!1}),this.options.hideTimeout)},t.toggle=function(e){!0===e||!1!==e&&!this.visible?this.show():this.hide()},t.addState=function(e){var t;if(this.trigger("addState",e),e===this.options.hiddenState)return this.hide();(t=this.el.classList).add.apply(t,e.split(" ")),this.options.visibleOnState&&this.show()},t.removeState=function(e){var t;if(this.trigger("removeState",e),e===this.options.hiddenState)return this.show();(t=this.el.classList).remove.apply(t,e.split(" ")),this.options.visibleOnState&&this.el.className===this.options.className&&this.hide()},t.toggleState=function(e,t){!0===t||!1!==t&&!this.el.classList.contains(e)?this.addState(e):this.removeState(e)},t.setSkewing=function(e){this.gsap.to(this,{skewing:e})},t.removeSkewing=function(){this.gsap.to(this,{skewing:this.options.skewing})},t.setStick=function(e){var t=("string"==typeof e?document.querySelector(e):e).getBoundingClientRect();this.stick={y:t.top+t.height/2,x:t.left+t.width/2}},t.removeStick=function(){this.stick=!1},t.setText=function(e){this.text.innerHTML=e,this.addState(this.options.textState),this.setSkewing(this.options.skewingText)},t.removeText=function(){this.removeState(this.options.textState),this.removeSkewing()},t.setIcon=function(e,t){void 0===t&&(t=""),this.text.innerHTML="",this.addState(this.options.iconState),this.setSkewing(this.options.skewingIcon)},t.removeIcon=function(){this.removeState(this.options.iconState),this.removeSkewing()},t.setMedia=function(e){var t=this;clearTimeout(this.mediaInt),e&&(this.mediaBox.innerHTML="",this.mediaBox.appendChild(e)),this.mediaInt=setTimeout((function(){return t.addState(t.options.mediaState)}),20),this.setSkewing(this.options.skewingMedia)},t.removeMedia=function(){var e=this;clearTimeout(this.mediaInt),this.removeState(this.options.mediaState),this.mediaInt=setTimeout((function(){return e.mediaBox.innerHTML=""}),this.options.hideMediaTimeout),this.removeSkewing()},t.setImg=function(e){this.mediaImg||(this.mediaImg=new Image),this.mediaImg.src!==e&&(this.mediaImg.src=e),this.setMedia(this.mediaImg)},t.removeImg=function(){this.removeMedia()},t.setVideo=function(e){this.mediaVideo||(this.mediaVideo=document.createElement("video"),this.mediaVideo.muted=!0,this.mediaVideo.loop=!0,this.mediaVideo.autoplay=!0),this.mediaVideo.src!==e&&(this.mediaVideo.src=e,this.mediaVideo.load()),this.mediaVideo.play(),this.setMedia(this.mediaVideo)},t.removeVideo=function(){this.mediaVideo&&this.mediaVideo.readyState>2&&this.mediaVideo.pause(),this.removeMedia()},t.on=function(e,t){this.events[e]instanceof Array||this.off(e),this.events[e].push(t)},t.off=function(e,t){this.events[e]=t?this.events[e].filter((function(e){return e!==t})):[]},t.trigger=function(e){var t=arguments,n=this;this.events[e]&&this.events[e].forEach((function(e){return e.call.apply(e,[n,n].concat([].slice.call(t,1)))}))},t.getFromDataset=function(e){var t=e.dataset;return{state:t[this.options.dataAttr],show:t[this.options.dataAttr+"Show"],text:t[this.options.dataAttr+"Text"],icon:t[this.options.dataAttr+"Icon"],img:t[this.options.dataAttr+"Img"],video:t[this.options.dataAttr+"Video"],stick:t[this.options.dataAttr+"Stick"]}},t.destroy=function(){this.trigger("destroy"),this.gsap.ticker.remove(this.ticker),this.container.removeEventListener("mouseleave",this.event.mouseleave),this.container.removeEventListener("mouseenter",this.event.mouseenter),this.container.removeEventListener("mousedown",this.event.mousedown),this.container.removeEventListener("mouseup",this.event.mouseup),this.container.removeEventListener("mousemove",this.event.mousemove),this.container.removeEventListener("mousemove",this.event.mousemoveOnce),this.container.removeEventListener("mouseover",this.event.mouseover),this.container.removeEventListener("mouseout",this.event.mouseout),this.el&&(this.container.removeChild(this.el),this.el=null,this.mediaImg=null,this.mediaVideo=null)},e}()},"./node_modules/uuid/dist/esm-browser/native.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});const i={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)}},"./node_modules/uuid/dist/esm-browser/regex.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});const i=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},"./node_modules/uuid/dist/esm-browser/rng.js":(e,t,n)=>{"use strict";let i;n.r(t),n.d(t,{default:()=>s});const r=new Uint8Array(16);function s(){if(!i&&(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!i))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(r)}},"./node_modules/uuid/dist/esm-browser/stringify.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,unsafeStringify:()=>s});var i=n("./node_modules/uuid/dist/esm-browser/validate.js");const r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function s(e,t=0){return r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]}const o=function(e,t=0){const n=s(e,t);if(!(0,i.default)(n))throw TypeError("Stringified UUID is invalid");return n}},"./node_modules/uuid/dist/esm-browser/v4.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var i=n("./node_modules/uuid/dist/esm-browser/native.js"),r=n("./node_modules/uuid/dist/esm-browser/rng.js"),s=n("./node_modules/uuid/dist/esm-browser/stringify.js");const o=function(e,t,n){if(i.default.randomUUID&&!t&&!e)return i.default.randomUUID();const o=(e=e||{}).random||(e.rng||r.default)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return(0,s.unsafeStringify)(o)}},"./node_modules/uuid/dist/esm-browser/validate.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var i=n("./node_modules/uuid/dist/esm-browser/regex.js");const r=function(e){return"string"==typeof e&&i.default.test(e)}},"./node_modules/@firebase/app/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{FirebaseError:()=>s.FirebaseError,SDK_VERSION:()=>x,_DEFAULT_ENTRY_NAME:()=>u,_addComponent:()=>m,_addOrOverwriteComponent:()=>g,_apps:()=>p,_clearComponents:()=>E,_components:()=>_,_getProvider:()=>y,_isFirebaseApp:()=>b,_isFirebaseServerApp:()=>C,_registerComponent:()=>v,_removeServiceInstance:()=>w,_serverApps:()=>f,deleteApp:()=>R,getApp:()=>D,getApps:()=>A,initializeApp:()=>N,initializeServerApp:()=>P,onLog:()=>L,registerVersion:()=>O,setLogLevel:()=>M});var i=n("./node_modules/@firebase/component/dist/esm/index.esm2017.js"),r=n("./node_modules/@firebase/logger/dist/esm/index.esm2017.js"),s=n("./node_modules/@firebase/util/dist/index.esm2017.js"),o=n("./node_modules/idb/build/index.js");class a{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const l="@firebase/app",c="0.10.1",h=new r.Logger("@firebase/app"),u="[DEFAULT]",d={[l]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},p=new Map,f=new Map,_=new Map;function m(e,t){try{e.container.addComponent(t)}catch(n){h.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function g(e,t){e.container.addOrOverwriteComponent(t)}function v(e){const t=e.name;if(_.has(t))return h.debug(`There were multiple attempts to register component ${t}.`),!1;_.set(t,e);for(const t of p.values())m(t,e);for(const t of f.values())m(t,e);return!0}function y(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}function w(e,t,n=u){y(e,t).clearInstance(n)}function b(e){return void 0!==e.options}function C(e){return void 0!==e.settings}function E(){_.clear()}const S={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},I=new s.ErrorFactory("app","Firebase",S);class T{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new i.Component("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw I.create("app-deleted",{appName:this._name})}}class k extends T{constructor(e,t,n,i){const r=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,s={name:n,automaticDataCollectionEnabled:r};if(void 0!==e.apiKey)super(e,s,i);else{super(e.options,s,i)}this._serverConfig=Object.assign({automaticDataCollectionEnabled:r},t),this._finalizationRegistry=new FinalizationRegistry((()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,O(l,c,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){R(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw I.create("server-app-deleted")}}const x="10.11.0";function N(e,t={}){let n=e;if("object"!=typeof t){t={name:t}}const r=Object.assign({name:u,automaticDataCollectionEnabled:!1},t),o=r.name;if("string"!=typeof o||!o)throw I.create("bad-app-name",{appName:String(o)});if(n||(n=(0,s.getDefaultAppConfig)()),!n)throw I.create("no-options");const a=p.get(o);if(a){if((0,s.deepEqual)(n,a.options)&&(0,s.deepEqual)(r,a.config))return a;throw I.create("duplicate-app",{appName:o})}const l=new i.ComponentContainer(o);for(const e of _.values())l.addComponent(e);const c=new T(n,r,l);return p.set(o,c),c}function P(e,t){if((0,s.isBrowser)())throw I.create("invalid-server-app-environment");let n;void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1),n=b(e)?e.options:e;const r=Object.assign(Object.assign({},t),n);void 0!==r.releaseOnDeref&&delete r.releaseOnDeref;if(void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw I.create("finalization-registry-not-supported",{});const o=""+(a=JSON.stringify(r),[...a].reduce(((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0),0));var a;const l=f.get(o);if(l)return l.incRefCount(t.releaseOnDeref),l;const c=new i.ComponentContainer(o);for(const e of _.values())c.addComponent(e);const h=new k(n,t,o,c);return f.set(o,h),h}function D(e=u){const t=p.get(e);if(!t&&e===u&&(0,s.getDefaultAppConfig)())return N();if(!t)throw I.create("no-app",{appName:e});return t}function A(){return Array.from(p.values())}async function R(e){let t=!1;const n=e.name;if(p.has(n))t=!0,p.delete(n);else if(f.has(n)){e.decRefCount()<=0&&(f.delete(n),t=!0)}t&&(await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function O(e,t,n){var r;let s=null!==(r=d[e])&&void 0!==r?r:e;n&&(s+=`-${n}`);const o=s.match(/\s|\//),a=t.match(/\s|\//);if(o||a){const e=[`Unable to register library "${s}" with version "${t}":`];return o&&e.push(`library name "${s}" contains illegal characters (whitespace or "/")`),o&&a&&e.push("and"),a&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void h.warn(e.join(" "))}v(new i.Component(`${s}-version`,(()=>({library:s,version:t})),"VERSION"))}function L(e,t){if(null!==e&&"function"!=typeof e)throw I.create("invalid-log-argument");(0,r.setUserLogHandler)(e,t)}function M(e){(0,r.setLogLevel)(e)}const F="firebase-heartbeat-database",q=1,j="firebase-heartbeat-store";let B=null;function W(){return B||(B=(0,o.openDB)(F,q,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(j)}catch(e){console.warn(e)}}}).catch((e=>{throw I.create("idb-open",{originalErrorMessage:e.message})}))),B}async function U(e,t){try{const n=(await W()).transaction(j,"readwrite"),i=n.objectStore(j);await i.put(t,V(e)),await n.done}catch(e){if(e instanceof s.FirebaseError)h.warn(e.message);else{const t=I.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});h.warn(t.message)}}}function V(e){return`${e.name}!${e.options.appId}`}class z{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new $(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),i=H();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==i&&!this._heartbeatsCache.heartbeats.some((e=>e.date===i)))return this._heartbeatsCache.heartbeats.push({date:i,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=H(),{heartbeatsToSend:n,unsentEntries:i}=function(e,t=1024){const n=[];let i=e.slice();for(const r of e){const e=n.find((e=>e.agent===r.agent));if(e){if(e.dates.push(r.date),Y(n)>t){e.dates.pop();break}}else if(n.push({agent:r.agent,dates:[r.date]}),Y(n)>t){n.pop();break}i=i.slice(1)}return{heartbeatsToSend:n,unsentEntries:i}}(this._heartbeatsCache.heartbeats),r=(0,s.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=t,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function H(){return(new Date).toISOString().substring(0,10)}class ${constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!(0,s.isIndexedDBAvailable)()&&(0,s.validateIndexedDBOpenable)().then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await W()).transaction(j),n=await t.objectStore(j).get(V(e));return await t.done,n}catch(e){if(e instanceof s.FirebaseError)h.warn(e.message);else{const t=I.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});h.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return U(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return U(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Y(e){return(0,s.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:e})).length}var K;K="",v(new i.Component("platform-logger",(e=>new a(e)),"PRIVATE")),v(new i.Component("heartbeat",(e=>new z(e)),"PRIVATE")),O(l,c,K),O(l,c,"esm2017"),O("fire-js","")},"./node_modules/@firebase/component/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{Component:()=>r,ComponentContainer:()=>a,Provider:()=>o});var i=n("./node_modules/@firebase/util/dist/index.esm2017.js");class r{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const s="[DEFAULT]";class o{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new i.Deferred;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(i)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:s})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(e=s){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=s){return this.instances.has(e)}getOptions(e=s){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(e)&&t.resolve(i)}return i}onInit(e,t){var n;const i=this.normalizeInstanceIdentifier(t),r=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;r.add(e),this.onInitCallbacks.set(i,r);const s=this.instances.get(i);return s&&e(s,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const i of n)try{i(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===s?void 0:i),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var i;return n||null}normalizeInstanceIdentifier(e=s){return this.component?this.component.multipleInstances?e:s:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class a{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new o(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}},"./node_modules/@firebase/logger/dist/esm/index.esm2017.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{LogLevel:()=>r,Logger:()=>c,setLogLevel:()=>h,setUserLogHandler:()=>u});const i=[];var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const s={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},o=r.INFO,a={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},l=(e,t,...n)=>{if(t{t.setLogLevel(e)}))}function u(e,t){for(const n of i){let i=null;t&&t.level&&(i=s[t.level]),n.userLogHandler=null===e?null:(t,n,...s)=>{const o=s.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");n>=(null!=i?i:t.logLevel)&&e({level:r[n].toLowerCase(),message:o,args:s,type:t.name})}}}},"./node_modules/firebase/app/dist/esm/index.esm.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{FirebaseError:()=>i.FirebaseError,SDK_VERSION:()=>i.SDK_VERSION,_DEFAULT_ENTRY_NAME:()=>i._DEFAULT_ENTRY_NAME,_addComponent:()=>i._addComponent,_addOrOverwriteComponent:()=>i._addOrOverwriteComponent,_apps:()=>i._apps,_clearComponents:()=>i._clearComponents,_components:()=>i._components,_getProvider:()=>i._getProvider,_isFirebaseApp:()=>i._isFirebaseApp,_isFirebaseServerApp:()=>i._isFirebaseServerApp,_registerComponent:()=>i._registerComponent,_removeServiceInstance:()=>i._removeServiceInstance,_serverApps:()=>i._serverApps,deleteApp:()=>i.deleteApp,getApp:()=>i.getApp,getApps:()=>i.getApps,initializeApp:()=>i.initializeApp,initializeServerApp:()=>i.initializeServerApp,onLog:()=>i.onLog,registerVersion:()=>i.registerVersion,setLogLevel:()=>i.setLogLevel});var i=n("./node_modules/@firebase/app/dist/esm/index.esm2017.js");(0,i.registerVersion)("firebase","10.11.0","app")},"./node_modules/firebase/database/dist/esm/index.esm.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{DataSnapshot:()=>i.DataSnapshot,Database:()=>i.Database,OnDisconnect:()=>i.OnDisconnect,QueryConstraint:()=>i.QueryConstraint,TransactionResult:()=>i.TransactionResult,_QueryImpl:()=>i._QueryImpl,_QueryParams:()=>i._QueryParams,_ReferenceImpl:()=>i._ReferenceImpl,_TEST_ACCESS_forceRestClient:()=>i._TEST_ACCESS_forceRestClient,_TEST_ACCESS_hijackHash:()=>i._TEST_ACCESS_hijackHash,_initStandalone:()=>i._initStandalone,_repoManagerDatabaseFromApp:()=>i._repoManagerDatabaseFromApp,_setSDKVersion:()=>i._setSDKVersion,_validatePathString:()=>i._validatePathString,_validateWritablePath:()=>i._validateWritablePath,child:()=>i.child,connectDatabaseEmulator:()=>i.connectDatabaseEmulator,enableLogging:()=>i.enableLogging,endAt:()=>i.endAt,endBefore:()=>i.endBefore,equalTo:()=>i.equalTo,forceLongPolling:()=>i.forceLongPolling,forceWebSockets:()=>i.forceWebSockets,get:()=>i.get,getDatabase:()=>i.getDatabase,goOffline:()=>i.goOffline,goOnline:()=>i.goOnline,increment:()=>i.increment,limitToFirst:()=>i.limitToFirst,limitToLast:()=>i.limitToLast,off:()=>i.off,onChildAdded:()=>i.onChildAdded,onChildChanged:()=>i.onChildChanged,onChildMoved:()=>i.onChildMoved,onChildRemoved:()=>i.onChildRemoved,onDisconnect:()=>i.onDisconnect,onValue:()=>i.onValue,orderByChild:()=>i.orderByChild,orderByKey:()=>i.orderByKey,orderByPriority:()=>i.orderByPriority,orderByValue:()=>i.orderByValue,push:()=>i.push,query:()=>i.query,ref:()=>i.ref,refFromURL:()=>i.refFromURL,remove:()=>i.remove,runTransaction:()=>i.runTransaction,serverTimestamp:()=>i.serverTimestamp,set:()=>i.set,setPriority:()=>i.setPriority,setWithPriority:()=>i.setWithPriority,startAfter:()=>i.startAfter,startAt:()=>i.startAt,update:()=>i.update});var i=n("./node_modules/@firebase/database/dist/index.esm2017.js")},"./node_modules/idb/build/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{deleteDB:()=>s,openDB:()=>r,unwrap:()=>i.u,wrap:()=>i.w});var i=n("./node_modules/idb/build/wrap-idb-value.js");function r(e,t,{blocked:n,upgrade:r,blocking:s,terminated:o}={}){const a=indexedDB.open(e,t),l=(0,i.w)(a);return r&&a.addEventListener("upgradeneeded",(e=>{r((0,i.w)(a.result),e.oldVersion,e.newVersion,(0,i.w)(a.transaction),e)})),n&&a.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),l.then((e=>{o&&e.addEventListener("close",(()=>o())),s&&e.addEventListener("versionchange",(e=>s(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),l}function s(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),(0,i.w)(n).then((()=>{}))}const o=["get","getKey","getAll","getAllKeys","count"],a=["put","add","delete","clear"],l=new Map;function c(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(l.get(t))return l.get(t);const n=t.replace(/FromIndex$/,""),i=t!==n,r=a.includes(n);if(!(n in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!o.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,r?"readwrite":"readonly");let o=s.store;return i&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),r&&s.done]))[0]};return l.set(t,s),s}(0,i.r)((e=>({...e,get:(t,n,i)=>c(t,n)||e.get(t,n,i),has:(t,n)=>!!c(t,n)||e.has(t,n)})))},"./node_modules/idb/build/wrap-idb-value.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{a:()=>h,i:()=>i,r:()=>d,u:()=>m,w:()=>_});const i=(e,t)=>t.some((t=>e instanceof t));let r,s;const o=new WeakMap,a=new WeakMap,l=new WeakMap,c=new WeakMap,h=new WeakMap;let u={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return a.get(e);if("objectStoreNames"===t)return e.objectStoreNames||l.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return _(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){u=e(u)}function p(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(s||(s=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(m(this),t),_(o.get(this))}:function(...t){return _(e.apply(m(this),t))}:function(t,...n){const i=e.call(m(this),t,...n);return l.set(i,t.sort?t.sort():[t]),_(i)}}function f(e){return"function"==typeof e?p(e):(e instanceof IDBTransaction&&function(e){if(a.has(e))return;const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("complete",r),e.removeEventListener("error",s),e.removeEventListener("abort",s)},r=()=>{t(),i()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",r),e.addEventListener("error",s),e.addEventListener("abort",s)}));a.set(e,t)}(e),i(e,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,u):e)}function _(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("success",r),e.removeEventListener("error",s)},r=()=>{t(_(e.result)),i()},s=()=>{n(e.error),i()};e.addEventListener("success",r),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&o.set(t,e)})).catch((()=>{})),h.set(t,e),t}(e);if(c.has(e))return c.get(e);const t=f(e);return t!==e&&(c.set(e,t),h.set(t,e)),t}const m=e=>h.get(e)}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";n.r(i);var e=n("./node_modules/mouse-follower/dist/index.module.js"),t=n("./node_modules/firebase/app/dist/esm/index.esm.js"),r=n("./node_modules/firebase/database/dist/esm/index.esm.js"),s=n("./node_modules/lozad/dist/lozad.min.js"),o=n.n(s),a=n("./node_modules/uuid/dist/esm-browser/v4.js"),l=n("./js/main/code-anime/item.js");function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n767&&_(),window.addEventListener("resize",_),gsap.registerPlugin(ScrollTrigger),gsap.registerPlugin(ScrollToPlugin),gsap.registerPlugin(SplitText);var m=h(".hero-largelogo");new SplitText(m,{type:"words",wordsClass:"hero-words"});u(".split-chars").forEach((function(e){new SplitText(e,{type:"chars",charsClass:"otherchars"})}));var g=u(".hero-words"),v=h(".below-line"),y=(h(".parallax-hero"),h(".hero-image"));document.addEventListener("DOMContentLoaded",(function(){gsap.timeline({defaults:{ease:"expo.out",delay:.5}}).addLabel("start").fromTo(v,{width:0},{duration:1.75,width:"100%",stagger:.095},"start").fromTo(g,{y:"110%"},{delay:0,duration:2.3,y:"0",stagger:.17,ease:"expo.inOut"},"start+=0.28").fromTo(y,{width:0},{width:"100%",duration:1.5,ease:"expo.inOut",transformOrigin:"50% 50% 0"},"start+=0.7"),gsap.to(window,{duration:2,scrollTo:{y:"nav"},ease:"power2.inOut"}),u(".slide").forEach((function(e,t){var n=e.querySelector(".parallax-image");function i(){gsap.fromTo(n,{y:innerWidth>767?"-60vh":"-30vh"},{y:innerWidth>767?"60vh":"30vh",scrollTrigger:{trigger:e,scrub:!0,start:"top bottom",end:"bottom top",markers:!1},ease:"none"})}i(),window.addEventListener("resize",i)}))})),u("[line-trigger]").forEach((function(e){var t=e.getAttribute("line-trigger"),n=function(e){var t=gsap.timeline({defaults:{duration:3,ease:"power3.out"}});return t.fromTo(e,{scaleX:0,opacity:0,transformOrigin:"left left"},{scaleX:1,opacity:1}),t}(e);ScrollTrigger.create({trigger:t,start:"top 92%",animation:n,onEnter:function(){return n.play()},onLeaveBack:function(){return n.reverse({duration:6.5})}})})),document.addEventListener("DOMContentLoaded",(function(){var e=h("#toTop");function t(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}t(),window.addEventListener("scroll",t),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".hero-main"},ease:function(e){return Math.min(1,1.001-Math.pow(2,-10*e))}})}))})),document.addEventListener("DOMContentLoaded",(function(){function t(){if(window.innerWidth>767)new e.default}t(),window.addEventListener("res",t)})),document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(".col__content-txt").forEach((function(e){var t=e.querySelector(".details-content"),n=e.querySelector("summary");gsap.set(t,{height:0,overflow:"hidden"}),n.addEventListener("click",(function(n){var i;e.hasAttribute("open")?gsap.to(t,{height:0,duration:.5,onComplete:function(){e.removeAttribute("open")}}):(i=t.scrollHeight,e.setAttribute("open",""),gsap.fromTo(t,{height:0},{height:i,duration:.5})),n.preventDefault()}))}));var e=document.querySelectorAll("details");e.forEach((function(t){t.addEventListener("click",(function(n){e.forEach((function(e){e!=t&&e.removeAttribute("open")}))}))}))}));var w,b=h(".c-elephant_himself"),C=h(".elephant-boundary");new e.default({el:b,container:C,speed:22.5,hideTimeout:3e4});if(window.innerWidth>767){var E=h(".ourservices"),S=new e.default;E.addEventListener("mouseenter",(function(){S.setImg("./../../assets/images/peanut.webp")})),E.addEventListener("mouseleave",(function(){S.removeImg()}))}document.addEventListener("DOMContentLoaded",(function(){gsap.registerPlugin(ScrollTrigger);var e=gsap.utils.toArray(".white-section"),t=h(".top-arrow-wrapper"),n=h(".top-arrow-path"),i=h(".menu-name"),r=u(".menu-dot-line");function s(){n.style.stroke="var(--color-bg)",t.style.fill="var(--color-black)",r.forEach((function(e){e.style.background="var(--color-black)"})),i.style.color="var(--color-black)"}function o(){n.style.stroke="var(--color-black)",t.style.fill="var(--color-bg)",r.forEach((function(e){e.style.background="var(--color-bg)"})),i.style.color="var(--color-bg)"}e.forEach((function(e,t){gsap.timeline({scrollTrigger:{trigger:e,id:t+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,onEnter:function(){return o()},onLeave:function(){return s()},onEnterBack:function(){return o()},onLeaveBack:function(){return s()}}})}))})),(w=u(".grid-itemz > .grid__item-img"),function(e){if(Array.isArray(e))return c(e)}(w)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(w)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(w)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).forEach((function(e){return new l.Item(e)}));var I=h(".global-video"),T=h("#video-background");gsap.registerPlugin(ScrollTrigger),gsap.timeline({scrollTrigger:{trigger:I,start:"top bottom",end:"top top",scrub:!0,markers:!1,toggleActions:"play none none reverse"}}).fromTo(T,{scaleX:.9,borderRadius:"45px"},{scaleX:1,borderRadius:"0px"});gsap.timeline({scrollTrigger:{trigger:T,start:"top bottom",end:"bottom top",scrub:!0,onEnter:function(){T.paused&&T.play().catch((function(e){"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeave:function(){T.paused||T.pause()},onEnterBack:function(){T.paused&&T.play().catch((function(e){"NotAllowedError"===e.name?console.log("Play request was interrupted by a pause call."):console.error("An unexpected error occurred:",e)}))},onLeaveBack:function(){T.paused||T.pause()}}});var k=T.play();void 0!==k&&k.then((function(e){})).catch((function(e){}));var x=(0,t.initializeApp)({apiKey:"AIzaSyCd-ad_ExUqBU-Z-kn_U_6BR4gfKoydHx4",authDomain:"hypercritical-c0acf.firebaseapp.com",databaseURL:"https://hypercritical-c0acf-default-rtdb.firebaseio.com",projectId:"hypercritical-c0acf",storageBucket:"hypercritical-c0acf.appspot.com",messagingSenderId:"615546380060",appId:"1:615546380060:web:a124c49f5be5b5142ca4d9",measurementId:"G-TDXEWBCNFH"}),N=(0,r.getDatabase)(x);document.getElementById("consultationForm").addEventListener("submit",(function(e){e.preventDefault();var t,n=document.getElementById("message").value,i=document.getElementById("email").value,s=document.getElementById("yourname").value,o=(t=(0,a.default)().substring(0,6),"INV-".concat(t)),l="";document.getElementById("Web-Design").checked&&(l+="Web Design, "),document.getElementById("SEO").checked&&(l+="SEO, "),document.getElementById("Development").checked&&(l+="Development, "),document.getElementById("Other").checked&&(l+="Other, "),l=l.slice(0,-2);for(var c="",h=document.getElementsByName("priceGroup"),u=0;uHypercritical ✦ Project
HC
HC
uz

Let’s work

together

Don't put your creativity on hold and let's build a professional web experience which will put you above your competitors.
\ No newline at end of file diff --git a/projectReact.bundle.js b/projectReact.bundle.js index 1aefc0ba..5a9e9fc0 100644 --- a/projectReact.bundle.js +++ b/projectReact.bundle.js @@ -1,2 +1,2 @@ /*! For license information please see projectReact.bundle.js.LICENSE.txt */ -(()=>{var e={"./js/main/components/ErrorBoundary.jsx":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n("./node_modules/react/index.js"),o=n.n(r),a=n("./js/main/components/sass/styles.module.css");function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/react/index.js"),o=n.n(r);n("./node_modules/splitting/dist/splitting.js");const a=function(e){var t,n=e.pageData,r=(t=window.innerWidth<768?n.media:n.mediaLarge)?t.split(" || "):[],a=n.previewImage,i=r[0],s=r[1],l=r[2],u=r[3],c=r[4],d=r[5];return console.log(r),o().createElement(o().Fragment,null,o().createElement("section",{className:"projectHeroWrapper"},o().createElement("div",{className:"projectHero"},o().createElement("div",{className:"preview__img"},a.endsWith(".mp4")||a.endsWith(".webm")?o().createElement(o().Fragment,null,o().createElement("div",{className:"preview__img-inner relative"},o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:a,type:a.endsWith(".mp4")?"video/mp4":"video/webm"}))),o().createElement("div",{className:"preview__title absolute"},o().createElement("span",{className:"preview__title-inner splitchars",style:{color:"".concat(n.previewColor)}},n.title))):o().createElement(o().Fragment,null,o().createElement("div",{className:"preview__img-inner",style:{backgroundImage:"url(".concat(a,")")}}),o().createElement("div",{className:"preview__title"},o().createElement("span",{className:"preview__title-inner splitchars",style:{color:"".concat(n.previewColor)}},n.title)))))),o().createElement("section",{className:"projectDetails"},o().createElement("div",{className:"projectMetadata"},o().createElement("div",{className:"projectclient"},o().createElement("div",{className:"metaDataheader"},"CLIENT"),o().createElement("div",null,n.client)),o().createElement("div",{className:"projecttask"},o().createElement("div",{className:"metaDataheader"},"EXPERTISE"),o().createElement("div",null,n.task)),o().createElement("div",{className:"projectyear"},o().createElement("div",{className:"metaDataheader"},"YEAR"),o().createElement("div",null,n.year))),o().createElement("div",{className:"projectAbout"},o().createElement("div",{className:"aboutLeft"},"About Project"),o().createElement("div",{className:"aboutCenter"},o().createElement("div",{className:"aboutClient"},n.content),o().createElement("div",{className:"projectAnalysis"},n.Analysis)),o().createElement("div",{className:"aboutRight"})),o().createElement("div",{className:"projectImage1"},o().createElement("div",{className:"projectImage1-inner"},i.endsWith(".mp4")||i.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:i,type:i.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:i,alt:n.title}))),o().createElement("div",{className:"projectAim"},o().createElement("div",{className:"Aimleft"},o().createElement("div",null,"Our Mission")),o().createElement("div",{className:"Aimcenter"},o().createElement("div",{className:"Aimmain",dangerouslySetInnerHTML:{__html:n.aim}})),o().createElement("div",{className:"Aimright"})),o().createElement("div",{className:"projectImage2"},o().createElement("div",{className:"projectImage2-left"},o().createElement("div",{className:"projectImage2-inner"},s.endsWith(".mp4")||s.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:s,type:s.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:s,alt:n.title}))),o().createElement("div",{className:"projectImage2-right"},o().createElement("div",{className:"projectImage2-inner"},l.endsWith(".mp4")||l.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:l,type:l.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:l,alt:n.title})))),o().createElement("div",{className:"projectSolution"},o().createElement("div",{className:"solutionLeft"},o().createElement("div",null,"Solution")),o().createElement("div",{className:"solutionCenter",dangerouslySetInnerHTML:{__html:n.solution}}),o().createElement("div",{className:"solutionRight"})),o().createElement("div",{className:"remainingImages"},o().createElement("div",{className:"otherImage"},void 0!==u&&o().createElement(o().Fragment,null,o().createElement("div",{className:"otherImage-inner"},u.endsWith(".mp4")||u.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:u,type:u.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:u,alt:n.title})))),o().createElement("div",{className:"otherImage"},void 0!==c&&o().createElement(o().Fragment,null,o().createElement("div",{className:"otherImage-inner"},c.endsWith(".mp4")||c.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:c,type:c.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:c,alt:n.title})))),o().createElement("div",{className:"otherImage"},void 0!==d&&o().createElement(o().Fragment,null,o().createElement("div",{className:"otherImage-inner"},d.endsWith(".mp4")||d.endsWith(".webm")?o().createElement("video",{muted:!0,loop:!0,autoPlay:!0,playsInline:!0},o().createElement("source",{src:d,type:d.endsWith(".mp4")?"video/mp4":"video/webm"})):o().createElement("img",{src:d,alt:n.title})))))))}},"./js/main/projects/ProjectVanilla.jsx":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/mouse-follower/dist/index.module.js");n("./node_modules/react/index.js");function o(e){n.g;var t=function(e){return document.querySelector(e)},o=function(e){return document.querySelectorAll(e)};gsap.registerPlugin(ScrollTrigger,ScrollSmoother),ScrollSmoother.create({smooth:1,effects:!0,smoothTouch:.1});var a=t(".mid-moon"),i=t(".action--close");function s(e){var t=function(t){e.hasOwnProperty(t)&&o(t).forEach((function(n){n?n.innerHTML=e[t]:console.error("Elements matching selector ".concat(t," not found."))}))};for(var n in e)t(n)}t(".action--menuUzi").addEventListener("click",(function(){a.classList.add("mid-moon--light"),a.classList.remove("mid-moon--dark")})),i.addEventListener("click",(function(){a.classList.add("mid-moon--dark"),a.classList.remove("mid-moon--light")})),new Promise((function(e,t){document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config.json").then((function(e){return e.json()})).then((function(t){!function(e){var t=function(t){e.hasOwnProperty(t)&&o(t).forEach((function(n){n?n.href=e[t]:console.error("Elements matching selector ".concat(t," not found."))}))};for(var n in e)t(n)}(t),e()})).catch((function(e){console.error("Error loading config:",e),t(e)}))}))})).then((function(){console.log("%c Greetings from Hypercritical","color:white;background:#c389e1; font-size: 26px;font-family:sans-serif")})).catch((function(e){console.error("Failed to load configuration or assign links:",e)})),new Promise((function(e,t){document.addEventListener("DOMContentLoaded",(function(){fetch("includes/config-data.json").then((function(e){return e.json()})).then((function(t){s(t),e()})).catch((function(e){console.error("Error loading config:",e),t(e)}))}))})).then((function(){})).catch((function(e){console.error("Failed to load configuration or assign links:",e)})),s(),document.addEventListener("DOMContentLoaded",(function(){function e(){if(innerWidth>767)new r.default}e(),window.addEventListener("res",e)})),document.addEventListener("DOMContentLoaded",(function(){var e=t("#toTop");function n(){(window.scrollY||document.documentElement.scrollTop)>1.2*window.innerHeight?e.style.display="block":e.style.display="none"}n(),window.addEventListener("scroll",n),e.addEventListener("click",(function(){gsap.to(window,{duration:2,delay:0,scrollTo:{y:".nav"},ease:function(e){return Math.min(1,1.001-Math.pow(2,-10*e))}})}))})),document.addEventListener("DOMContentLoaded",(function(){gsap.registerPlugin(ScrollTrigger);var e=gsap.utils.toArray(".white-section"),n=t(".top-arrow-wrapper"),r=t(".top-arrow-path"),a=t(".menu-name"),i=o(".menu-dot-line"),s=t(".nav .below-line"),l=t(".nav_logo_parent"),u=t(".est_nav");function c(){r.style.stroke="var(--color-bg)",n.style.fill="var(--color-black)",i.forEach((function(e){e.style.background="var(--color-black)"})),a.style.color="var(--color-black)"}function d(){u.style.fill="var(--color-bg)",s.style.background="var(--color-bg)",l.style.color="var(--color-bg)",i.forEach((function(e){e.style.background="var(--color-bg)"})),a.style.color="var(--color-bg)"}function f(){var e=window.scrollY||document.documentElement.scrollTop;e<.8*window.innerHeight?d():e>=.8*window.innerHeight&&e<1.8*window.innerHeight&&(r.style.stroke="var(--color-black)",u.style.fill="var(--color-black)",s.style.background="var(--color-black)",l.style.color="var(--color-black)",n.style.fill="var(--color-black)",i.forEach((function(e){e.style.background="var(--color-black)"})),a.style.color="var(--color-black)")}f(),window.addEventListener("scroll",f),e.forEach((function(e,t){gsap.timeline({scrollTrigger:{trigger:e,id:t+1,start:"top top",endtrigger:e,end:"bottom bottom",scrub:!0,markers:!1,onEnter:function(){return c()},onLeave:function(){return d()},onEnterBack:function(){return c()},onLeaveBack:function(){return d()}}})}))})),gsap.registerPlugin(SplitText);var l=o(".splitchars");l.forEach((function(e){new SplitText(e,{type:"chars",charsClass:"otherchars"})}));var u=o(".otherchars");o(".nav .below-line");gsap.timeline({defaults:{ease:"expo.out",delay:0}}).set(l,{overflow:"hidden"}).addLabel("start").fromTo(u,{y:"102%"},{duration:1.3,y:"0",ease:"power2.inOut"},"start+=0")}},"./node_modules/css-loader/dist/cjs.js!./js/main/components/sass/styles.module.css":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/css-loader/dist/runtime/api.js"),o=n.n(r)()((function(e){return e[1]}));o.push([e.id,'/* CSS for the spinner */\r\n\r\n/* .spinner {\r\n border: 4px solid rgba(0, 0, 0, 0.1);\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 50%;\r\n border-left-color: #09f;\r\n animation: spin 1s ease infinite;\r\n}\r\n\r\n@keyframes spin {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n} */\r\n\r\n.QMCCeF4Q8VuCO0UpN5WyFA\\=\\= {\r\n font-family: "var(--font-1)";\r\n}\r\n\r\n.bCyl-AT\\+vb-T0t1vA4D3Ag\\=\\= {\r\n font-family: "var(--font-3)";\r\n}\r\n\r\n.gJNFAD5qco6bZBtwWEacog\\=\\= {\r\n font-family: "var(--font-3)";\r\n}\r\n.wZ3xa\\+ac8lo4vXrlfhI6ng\\=\\= {\r\n font-family: "var(--font-1)";\r\n}\r\n\r\n.NRllcBXmbTQZIlXMaEOAvg\\=\\= {\r\n background-color: var(--color-bg);\r\n}\r\n.RGpZF9uXC89gD5VR9beRjA\\=\\= {\r\n color: var(--color-grownish) !important;\r\n}\r\n.Wkg5wGQAAnWthJ4cgJRAkQ\\=\\= {\r\n background: var(--color-grownish);\r\n color: var(--color-bg);\r\n /* background: linear-gradient(90deg, rgba(248, 247, 250, 1) 30%, rgba(224, 238, 250, 1) 100%); */\r\n}\r\n.UnBmpvSP42Hewk6GtEAEqQ\\=\\= {\r\n background: var(--color-grownish);\r\n /* background: linear-gradient(90deg, rgba(248, 247, 250, 1) 30%, rgba(224, 238, 250, 1) 100%); */\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 5px;\r\n border-radius: 22px;\r\n max-height: 41px;\r\n overflow: hidden;\r\n color: var(--color-bg) !important;\r\n}\r\n._8fzEG845XTKPlD5G1hjFQw\\=\\= {\r\n color: var(--color-bg) !important;\r\n}\r\n\r\n.kmj8wGmHW-9yRH7Mb5QK6w\\=\\= {\r\n margin: 0;\r\n margin-bottom: 5px;\r\n border: none !important;\r\n margin: 6px 2px;\r\n border-radius: 35px;\r\n display: grid !important;\r\n grid-template-columns: auto auto;\r\n align-items: center;\r\n width: 100%;\r\n min-width: 200px !important;\r\n}\r\n.G\\+tEUONSOfahwuyllurS9Q\\=\\= {\r\n border-right: 1px solid rgba(119, 102, 102, 0.12);\r\n background-color: var(--color-grownish-1);\r\n font-family: var(--font-2);\r\n}\r\n\r\n.I2aaPGnMoznnFseldrqzzw\\=\\= {\r\n min-width: calc(100vw - 222px);\r\n color: var(--color-bg);\r\n}\r\n.rqCpVBw0SvtXawopC6LJDA\\=\\= {\r\n float: right;\r\n justify-self: center;\r\n}\r\n.YLig9CDe5NaCarFMQ955pQ\\=\\= {\r\n scale: 0.4;\r\n background: var(--color-bg);\r\n color: var(--color-black);\r\n display: flex;\r\n justify-content: center;\r\n border-radius: 50%;\r\n height: 36px;\r\n width: 36px;\r\n align-items: center;\r\n}\r\n\r\n.c2UoyWfUFC7e93MLYCI5ZQ\\=\\= {\r\n cursor: pointer;\r\n height: 37px;\r\n border: none;\r\n border-radius: 45px;\r\n background: var(--color-orangy);\r\n display: grid;\r\n align-items: center;\r\n justify-content: start;\r\n width: 100%;\r\n grid-template-columns: 24px 1fr;\r\n grid-template-rows: 1fr;\r\n overflow: hidden;\r\n}\r\n\r\n.BND9Aiog2bvQST7hStOMlw\\=\\= {\r\n color: var(--color-bg);\r\n padding: 0 12px;\r\n font-size: 0.8rem;\r\n}\r\n\r\n.YLig9CDe5NaCarFMQ955pQ\\=\\= path {\r\n color: var(--color-grownish);\r\n}\r\n.fvBZnjUoxn8wFOesrL3bDQ\\=\\= {\r\n display: flex;\r\n align-items: center;\r\n justify-content: end;\r\n}\r\n\r\n.l07KfUWj6t9-bwDk2SXJQw\\=\\= {\r\n font-family: var(--font-2) !important;\r\n padding: 20px 5px;\r\n font-weight: 900 !important;\r\n color: var(--color-bg) !important;\r\n}\r\n.C4ZD\\+wZsQn4ChxMbyL5cWA\\=\\= {\r\n display: grid;\r\n grid-template-columns: 50px auto;\r\n align-items: center;\r\n}\r\n.UNVFrVpaB78S62QOmdsXBQ\\=\\= {\r\n margin: 0px !important;\r\n padding: 0px !important;\r\n max-width: unset !important;\r\n}\r\n._7xbx9Q4zm-XRgDmRDBE6eg\\=\\= {\r\n display: flex;\r\n gap: 1rem;\r\n}\r\n\r\n._2JhCcWq5KmEwhUVjGUeLrA\\=\\= {\r\n display: grid;\r\n grid-template-columns: 30px auto;\r\n align-items: center;\r\n justify-content: start;\r\n padding: 0px 24px;\r\n background: var(--color-orangy);\r\n\r\n border: none;\r\n border-radius: 30px;\r\n font-size: 0.6rem;\r\n height: 30px;\r\n text-align: center;\r\n cursor: pointer;\r\n}\r\n@media (max-width: 600px) {\r\n ._2JhCcWq5KmEwhUVjGUeLrA\\=\\= {\r\n display: none;\r\n }\r\n}\r\n.BpLJ60xoae98ki1H5n8oGw\\=\\= {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n.fX9SOQ3cIlIDn6wZ4G0M7w\\=\\= {\r\n padding: 4px !important;\r\n color: var(--color-bg) !important;\r\n display: block;\r\n border-bottom: none !important;\r\n}\r\n.cZSU1X5Ipe1Y9JX8JPF0ww\\=\\= {\r\n font-weight: 900 !important;\r\n}\r\n\r\n.JnZnycqq7l8714j-e76hCQ\\=\\= {\r\n border: none;\r\n font-size: 16px;\r\n height: auto;\r\n margin: 0;\r\n outline: 0;\r\n padding: 15px;\r\n width: 100%;\r\n background-color: var(--color-grownish);\r\n color: var(--color-bg);\r\n border-radius: 4px;\r\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03) inset;\r\n}\r\n.GvkD1aGywjQUSvFzKbJ7EA\\=\\= {\r\n background: "#f4f7f8";\r\n max-width: unset;\r\n color: var(--color-bg);\r\n}\r\n\r\n.fPhaZ7zQKu1cWeQFLu\\+Faw\\=\\= {\r\n display: flex;\r\n justify-content: end;\r\n margin-bottom: 30px;\r\n}\r\n\r\n@media screen and (min-width: 600px) {\r\n .fPhaZ7zQKu1cWeQFLu\\+Faw\\=\\= {\r\n position: fixed;\r\n top: 90px;\r\n right: 11px;\r\n }\r\n}\r\n\r\n.f72C5WBYRiHtfIg9sUoBsw\\=\\= {\r\n display: block;\r\n margin-bottom: 8px;\r\n}\r\n\r\n@media (max-width: 600px) {\r\n ._6vC04EJ4aq2\\+0ySS1ZQTpg\\=\\= {\r\n grid-template-columns: 1fr !important;\r\n }\r\n}\r\n\r\n._6vC04EJ4aq2\\+0ySS1ZQTpg\\=\\= {\r\n grid-template-columns: 1fr 1fr;\r\n display: grid;\r\n gap: 30px;\r\n align-items: center;\r\n justify-content: center;\r\n grid-template-rows: auto;\r\n}\r\n.xlcJATv1x9vSKZr8VsFemw\\=\\= {\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n gap: 30px;\r\n align-items: center;\r\n padding: 30px 0;\r\n}\r\n.oAXp\\+lugCBStPpXaQrpTtw\\=\\= {\r\n min-height: 130px;\r\n}\r\n.XByT7ClrGkKTkmq40py3hw\\=\\= {\r\n background-color: var(--main-color) !important;\r\n}\r\n\r\n@media (min-width: 768px) {\r\n ._6vC04EJ4aq2\\+0ySS1ZQTpg\\=\\=,\r\n .xlcJATv1x9vSKZr8VsFemw\\=\\= {\r\n padding: 0 2rem;\r\n }\r\n}\r\n.TwWl3ONBetUASqDa2\\+NIFg\\=\\= {\r\n padding: 0 16px;\r\n height: 100%;\r\n position: absolute;\r\n pointer-events: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n._7fL07xkN4oaG4c8K69txbA\\=\\= {\r\n border-radius: 45px !important;\r\n}\r\n\r\n.WI-enwbMRzfVsJs46NvRpQ\\=\\= {\r\n height: 100svh;\r\n display: grid;\r\n align-items: center;\r\n justify-content: center;\r\n background: var(--color-bg);\r\n grid-template-columns: 1fr;\r\n grid-template-rows: 1fr;\r\n}\r\n\r\n.Spc9d7fC6gdOTysSs5sLoA\\=\\= {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: 1;\r\n}\r\n._107ZN3t0OxZ45Js89t-iuw\\=\\= {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: 2;\r\n backdrop-filter: blur(6px);\r\n}\r\n.WKqGDtaN1b8zGxq\\+uohpTg\\=\\= {\r\n z-index: 3;\r\n max-width: 89vw;\r\n width: 89vw;\r\n justify-self: center;\r\n background-color: #ece9e10d;\r\n backdrop-filter: opacity(0.6);\r\n color: var(--color-bg);\r\n text-align: center;\r\n height: 77vh;\r\n border-radius: 45px;\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n font-size: var(--hc-xxl);\r\n}\r\n\r\n.d4wUHIK3y94Kzz-tYwAgxQ\\=\\= {\r\n display: flex;\r\n height: 100%;\r\n flex-direction: column-reverse;\r\n justify-content: start;\r\n}\r\n.w0NSJkI4NEPSJMx\\+wGlUgQ\\=\\= {\r\n align-items: center;\r\n display: flex;\r\n padding: 30px 10px;\r\n justify-content: center;\r\n flex-direction: column;\r\n}\r\n.nqDigWsmP2Tx5IOWCzXVoA\\=\\= {\r\n display: grid;\r\n width: 100%;\r\n justify-content: center;\r\n display: none;\r\n}\r\n\r\n.K30Akp4Jj\\+cu-QtBXnbWEw\\=\\= {\r\n min-height: 100vh;\r\n background-color: var(--color-grownish-1);\r\n}\r\n\r\n.G\\+tEUONSOfahwuyllurS9Q\\=\\= path {\r\n fill: var(--color-bg);\r\n color: var(--color-bg);\r\n}\r\n\r\n.G\\+tEUONSOfahwuyllurS9Q\\=\\= {\r\n font-family: var(--font-2) !important;\r\n}\r\n.sXFcQxvY82IRQ04zSRDJyg\\=\\= {\r\n margin: 4px;\r\n border-radius: 25px;\r\n max-height: calc(100% - 20px);\r\n color: var(--color-bg);\r\n background: var(--color-grownish);\r\n}\r\n.se-yqn8ZYFjeP4BlG20aRw\\=\\= {\r\n border-radius: 22px !important;\r\n\r\n background-color: var(--color-grownish) !important;\r\n}\r\n.eqbSNK6sOJDQ6Cau8CToxQ\\=\\=:not(:last-child) {\r\n border-top: solid 0.0058vw var(--color-bg);\r\n}\r\n\r\n.DhSmU9lgFPEh0oZ1hkybAw\\=\\= {\r\n min-height: 100svh;\r\n display: grid;\r\n grid-template-columns: 27% 27% 45%;\r\n grid-template-rows: 3rem 1fr 1fr;\r\n gap: 0.5rem;\r\n padding: 1rem 1rem 1rem 0;\r\n grid-template-areas:\r\n "topdashboard topdashboard topdashboard"\r\n "welcome topcenter todo-list"\r\n "bottomleft bottomcenter todo-list";\r\n height: 100%;\r\n background-color: var(--color-grownish-1);\r\n}\r\n\r\n@media screen and (min-width: 570px) and (max-width: 900px) {\r\n .DhSmU9lgFPEh0oZ1hkybAw\\=\\= {\r\n grid-template-rows: 3rem minmax(150px, 252px) auto minmax(150px, 252px) !important;\r\n grid-template-areas:\r\n "topdashboard topdashboard"\r\n "welcome topcenter "\r\n "todo-list todo-list"\r\n "bottomleft bottomcenter" !important;\r\n grid-template-columns: 1fr 1fr;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 569px) {\r\n .DhSmU9lgFPEh0oZ1hkybAw\\=\\= {\r\n grid-template-rows: 3rem minmax(150px, 252px) minmax(150px, 250px) auto auto 300px !important;\r\n grid-template-areas:\r\n "topdashboard"\r\n "welcome"\r\n "bottomcenter"\r\n "todo-list"\r\n "topcenter"\r\n "bottomleft " !important;\r\n grid-template-columns: unset;\r\n }\r\n}\r\n\r\n.MT-nFxDkDeOIkL\\+Evshlsg\\=\\= {\r\n grid-area: topdashboard;\r\n height: fit-content;\r\n transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n width: 100%;\r\n box-sizing: border-box;\r\n position: sticky;\r\n z-index: 1100;\r\n left: auto;\r\n right: 0px;\r\n /* box-shadow: rgba(255, 255, 255, 0.9) 0rem 0rem 0.0625rem 0.0625rem inset,\r\n rgba(0, 0, 0, 0.05) 0rem 1.25rem 1.6875rem 0rem; */\r\n backdrop-filter: blur(2.625rem);\r\n color: var(--color-bg);\r\n top: 0;\r\n max-height: 4rem;\r\n -webkit-box-align: center;\r\n align-items: center;\r\n border-radius: 1.25rem;\r\n padding: 0.5rem 0px;\r\n background-color: transparent !important;\r\n border-color: rgba(226, 232, 240, 0.3) !important;\r\n display: grid;\r\n display: flex;\r\n justify-content: center;\r\n justify-content: space-between;\r\n}\r\n.wSOL31qViqLNu5bXlSOJnA\\=\\= {\r\n border: 2px solid var(--color-orangy);\r\n}\r\n.Ls\\+FzUOZ0BbRQSFdDBlU2Q\\=\\=.NdsW1aRWVnOg0KSGPnqEjQ\\=\\= {\r\n font-family: var(--font-2) !important;\r\n}\r\n.UnBmpvSP42Hewk6GtEAEqQ\\=\\= svg {\r\n fill: var(--color-bg);\r\n}\r\n',""]),o.locals={defaultFont:"QMCCeF4Q8VuCO0UpN5WyFA==",secondaryFont:"bCyl-AT+vb-T0t1vA4D3Ag==",th:"gJNFAD5qco6bZBtwWEacog==",td:"wZ3xa+ac8lo4vXrlfhI6ng==",tableheader:"NRllcBXmbTQZIlXMaEOAvg==",headcellStyle:"RGpZF9uXC89gD5VR9beRjA==",tablebody:"Wkg5wGQAAnWthJ4cgJRAkQ==",pagination:"UnBmpvSP42Hewk6GtEAEqQ==",sortCustom:"_8fzEG845XTKPlD5G1hjFQw==",dashTopbar:"kmj8wGmHW-9yRH7Mb5QK6w==",drawerLeft:"G+tEUONSOfahwuyllurS9Q==",mainDashboardContent:"I2aaPGnMoznnFseldrqzzw==",addFloatTop:"rqCpVBw0SvtXawopC6LJDA==",addFloatBtn:"YLig9CDe5NaCarFMQ955pQ==",addOrderFloat:"c2UoyWfUFC7e93MLYCI5ZQ==",addFloatText:"BND9Aiog2bvQST7hStOMlw==",dashTopbarRight:"fvBZnjUoxn8wFOesrL3bDQ==",messageBoxDash:"l07KfUWj6t9-bwDk2SXJQw==",messageBoxWrapper:"C4ZD+wZsQn4ChxMbyL5cWA==",dashInnerWrapper:"UNVFrVpaB78S62QOmdsXBQ==",dashTopbarLeft:"_7xbx9Q4zm-XRgDmRDBE6eg==",dashTopbarFilter:"_2JhCcWq5KmEwhUVjGUeLrA==",dashActions:"BpLJ60xoae98ki1H5n8oGw==",cellStyle:"fX9SOQ3cIlIDn6wZ4G0M7w==",bold:"cZSU1X5Ipe1Y9JX8JPF0ww==",editForm:"JnZnycqq7l8714j-e76hCQ==",dashEditWrapper:"GvkD1aGywjQUSvFzKbJ7EA==",editSave:"fPhaZ7zQKu1cWeQFLu+Faw==",editLabel:"f72C5WBYRiHtfIg9sUoBsw==",editFormWrapper:"_6vC04EJ4aq2+0ySS1ZQTpg==",editLargeWrapper:"xlcJATv1x9vSKZr8VsFemw==",editMessage:"oAXp+lugCBStPpXaQrpTtw==",mainColor:"XByT7ClrGkKTkmq40py3hw==",searchIconWrapper:"TwWl3ONBetUASqDa2+NIFg==",floatActions:"_7fL07xkN4oaG4c8K69txbA==",ErrorContainer:"WI-enwbMRzfVsJs46NvRpQ==",ErrorvideoBackground:"Spc9d7fC6gdOTysSs5sLoA==",ErrorTopbackground:"_107ZN3t0OxZ45Js89t-iuw==",ErrorDataWrapper:"WKqGDtaN1b8zGxq+uohpTg==",DrawerListWrapper:"d4wUHIK3y94Kzz-tYwAgxQ==",profileDrawerContainer:"w0NSJkI4NEPSJMx+wGlUgQ==",profileName:"nqDigWsmP2Tx5IOWCzXVoA==",EverythingWrapper:"K30Akp4Jj+cu-QtBXnbWEw==",DrawerInnerWrapper:"sXFcQxvY82IRQ04zSRDJyg==",tableContainer:"se-yqn8ZYFjeP4BlG20aRw==",tableDataRow:"eqbSNK6sOJDQ6Cau8CToxQ==",dashboardWrapper:"DhSmU9lgFPEh0oZ1hkybAw==",dashboardTop:"MT-nFxDkDeOIkL+Evshlsg==",profileAvatar:"wSOL31qViqLNu5bXlSOJnA==",Styles:"Ls+FzUOZ0BbRQSFdDBlU2Q==",DrawerLabels:"NdsW1aRWVnOg0KSGPnqEjQ=="};const a=o},"./node_modules/css-loader/dist/runtime/api.js":e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var a=0;a{"use strict";n.r(t),n.d(t,{default:()=>r});var r=function(){function e(t){void 0===t&&(t={}),this.options=Object.assign({},{el:null,container:document.body,className:"mf-cursor",innerClassName:"mf-cursor-inner",textClassName:"mf-cursor-text",mediaClassName:"mf-cursor-media",mediaBoxClassName:"mf-cursor-media-box",iconSvgClassName:"mf-svgsprite",iconSvgNamePrefix:"-",iconSvgSrc:"",dataAttr:"cursor",hiddenState:"-hidden",textState:"-text",iconState:"-icon",activeState:"-active",mediaState:"-media",stateDetection:{"-pointer":"a,button"},visible:!0,visibleOnState:!1,speed:.55,ease:"expo.out",overwrite:!0,skewing:0,skewingText:2,skewingIcon:2,skewingMedia:2,skewingDelta:.001,skewingDeltaMax:.15,stickDelta:.15,showTimeout:0,hideOnLeave:!0,hideTimeout:300,hideMediaTimeout:300,initialPos:[-window.innerWidth,-window.innerHeight]},t),this.options.visible&&null==t.stateDetection&&(this.options.stateDetection["-hidden"]="iframe"),this.gsap=e.gsap||window.gsap,this.el="string"==typeof this.options.el?document.querySelector(this.options.el):this.options.el,this.container="string"==typeof this.options.container?document.querySelector(this.options.container):this.options.container,this.skewing=this.options.skewing,this.pos={x:this.options.initialPos[0],y:this.options.initialPos[1]},this.vel={x:0,y:0},this.event={},this.events=[],this.init()}e.registerGSAP=function(t){e.gsap=t};var t=e.prototype;return t.init=function(){this.el||this.create(),this.createSetter(),this.bind(),this.render(!0),this.ticker=this.render.bind(this,!1),this.gsap.ticker.add(this.ticker)},t.create=function(){this.el=document.createElement("div"),this.el.className=this.options.className,this.el.classList.add(this.options.hiddenState),this.inner=document.createElement("div"),this.inner.className=this.options.innerClassName,this.text=document.createElement("div"),this.text.className=this.options.textClassName,this.media=document.createElement("div"),this.media.className=this.options.mediaClassName,this.mediaBox=document.createElement("div"),this.mediaBox.className=this.options.mediaBoxClassName,this.media.appendChild(this.mediaBox),this.inner.appendChild(this.media),this.inner.appendChild(this.text),this.el.appendChild(this.inner),this.container.appendChild(this.el)},t.createSetter=function(){this.setter={x:this.gsap.quickSetter(this.el,"x","px"),y:this.gsap.quickSetter(this.el,"y","px"),rotation:this.gsap.quickSetter(this.el,"rotation","deg"),scaleX:this.gsap.quickSetter(this.el,"scaleX"),scaleY:this.gsap.quickSetter(this.el,"scaleY"),wc:this.gsap.quickSetter(this.el,"willChange"),inner:{rotation:this.gsap.quickSetter(this.inner,"rotation","deg")}}},t.bind=function(){var e=this;this.event.mouseleave=function(){return e.hide()},this.event.mouseenter=function(){return e.show()},this.event.mousedown=function(){return e.addState(e.options.activeState)},this.event.mouseup=function(){return e.removeState(e.options.activeState)},this.event.mousemoveOnce=function(){return e.show()},this.event.mousemove=function(t){e.gsap.to(e.pos,{x:e.stick?e.stick.x-(e.stick.x-t.clientX)*e.options.stickDelta:t.clientX,y:e.stick?e.stick.y-(e.stick.y-t.clientY)*e.options.stickDelta:t.clientY,overwrite:e.options.overwrite,ease:e.options.ease,duration:e.visible?e.options.speed:0,onUpdate:function(){return e.vel={x:t.clientX-e.pos.x,y:t.clientY-e.pos.y}}})},this.event.mouseover=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var r in e.options.stateDetection)n.matches(e.options.stateDetection[r])&&e.addState(r);if(e.options.dataAttr){var o=e.getFromDataset(n);o.state&&e.addState(o.state),o.text&&e.setText(o.text),o.icon&&e.setIcon(o.icon),o.img&&e.setImg(o.img),o.video&&e.setVideo(o.video),void 0!==o.show&&e.show(),void 0!==o.stick&&e.setStick(o.stick||n)}}},this.event.mouseout=function(t){for(var n=t.target;n&&n!==e.container&&(!t.relatedTarget||!n.contains(t.relatedTarget));n=n.parentNode){for(var r in e.options.stateDetection)n.matches(e.options.stateDetection[r])&&e.removeState(r);if(e.options.dataAttr){var o=e.getFromDataset(n);o.state&&e.removeState(o.state),o.text&&e.removeText(),o.icon&&e.removeIcon(),o.img&&e.removeImg(),o.video&&e.removeVideo(),void 0!==o.show&&e.hide(),void 0!==o.stick&&e.removeStick()}}},this.options.hideOnLeave&&this.container.addEventListener("mouseleave",this.event.mouseleave,{passive:!0}),this.options.visible&&this.container.addEventListener("mouseenter",this.event.mouseenter,{passive:!0}),this.options.activeState&&(this.container.addEventListener("mousedown",this.event.mousedown,{passive:!0}),this.container.addEventListener("mouseup",this.event.mouseup,{passive:!0})),this.container.addEventListener("mousemove",this.event.mousemove,{passive:!0}),this.options.visible&&this.container.addEventListener("mousemove",this.event.mousemoveOnce,{passive:!0,once:!0}),(this.options.stateDetection||this.options.dataAttr)&&(this.container.addEventListener("mouseover",this.event.mouseover,{passive:!0}),this.container.addEventListener("mouseout",this.event.mouseout,{passive:!0}))},t.render=function(e){if(!0===e||0!==this.vel.y&&0!==this.vel.x){if(this.trigger("render"),this.setter.wc("transform"),this.setter.x(this.pos.x),this.setter.y(this.pos.y),this.skewing){var t=Math.sqrt(Math.pow(this.vel.x,2)+Math.pow(this.vel.y,2)),n=Math.min(t*this.options.skewingDelta,this.options.skewingDeltaMax)*this.skewing,r=180*Math.atan2(this.vel.y,this.vel.x)/Math.PI;this.setter.rotation(r),this.setter.scaleX(1+n),this.setter.scaleY(1-n),this.setter.inner.rotation(-r)}}else this.setter.wc("auto")},t.show=function(){var e=this;this.trigger("show"),clearInterval(this.visibleInt),this.visibleInt=setTimeout((function(){e.el.classList.remove(e.options.hiddenState),e.visible=!0,e.render(!0)}),this.options.showTimeout)},t.hide=function(){var e=this;this.trigger("hide"),clearInterval(this.visibleInt),this.el.classList.add(this.options.hiddenState),this.visibleInt=setTimeout((function(){return e.visible=!1}),this.options.hideTimeout)},t.toggle=function(e){!0===e||!1!==e&&!this.visible?this.show():this.hide()},t.addState=function(e){var t;if(this.trigger("addState",e),e===this.options.hiddenState)return this.hide();(t=this.el.classList).add.apply(t,e.split(" ")),this.options.visibleOnState&&this.show()},t.removeState=function(e){var t;if(this.trigger("removeState",e),e===this.options.hiddenState)return this.show();(t=this.el.classList).remove.apply(t,e.split(" ")),this.options.visibleOnState&&this.el.className===this.options.className&&this.hide()},t.toggleState=function(e,t){!0===t||!1!==t&&!this.el.classList.contains(e)?this.addState(e):this.removeState(e)},t.setSkewing=function(e){this.gsap.to(this,{skewing:e})},t.removeSkewing=function(){this.gsap.to(this,{skewing:this.options.skewing})},t.setStick=function(e){var t=("string"==typeof e?document.querySelector(e):e).getBoundingClientRect();this.stick={y:t.top+t.height/2,x:t.left+t.width/2}},t.removeStick=function(){this.stick=!1},t.setText=function(e){this.text.innerHTML=e,this.addState(this.options.textState),this.setSkewing(this.options.skewingText)},t.removeText=function(){this.removeState(this.options.textState),this.removeSkewing()},t.setIcon=function(e,t){void 0===t&&(t=""),this.text.innerHTML="",this.addState(this.options.iconState),this.setSkewing(this.options.skewingIcon)},t.removeIcon=function(){this.removeState(this.options.iconState),this.removeSkewing()},t.setMedia=function(e){var t=this;clearTimeout(this.mediaInt),e&&(this.mediaBox.innerHTML="",this.mediaBox.appendChild(e)),this.mediaInt=setTimeout((function(){return t.addState(t.options.mediaState)}),20),this.setSkewing(this.options.skewingMedia)},t.removeMedia=function(){var e=this;clearTimeout(this.mediaInt),this.removeState(this.options.mediaState),this.mediaInt=setTimeout((function(){return e.mediaBox.innerHTML=""}),this.options.hideMediaTimeout),this.removeSkewing()},t.setImg=function(e){this.mediaImg||(this.mediaImg=new Image),this.mediaImg.src!==e&&(this.mediaImg.src=e),this.setMedia(this.mediaImg)},t.removeImg=function(){this.removeMedia()},t.setVideo=function(e){this.mediaVideo||(this.mediaVideo=document.createElement("video"),this.mediaVideo.muted=!0,this.mediaVideo.loop=!0,this.mediaVideo.autoplay=!0),this.mediaVideo.src!==e&&(this.mediaVideo.src=e,this.mediaVideo.load()),this.mediaVideo.play(),this.setMedia(this.mediaVideo)},t.removeVideo=function(){this.mediaVideo&&this.mediaVideo.readyState>2&&this.mediaVideo.pause(),this.removeMedia()},t.on=function(e,t){this.events[e]instanceof Array||this.off(e),this.events[e].push(t)},t.off=function(e,t){this.events[e]=t?this.events[e].filter((function(e){return e!==t})):[]},t.trigger=function(e){var t=arguments,n=this;this.events[e]&&this.events[e].forEach((function(e){return e.call.apply(e,[n,n].concat([].slice.call(t,1)))}))},t.getFromDataset=function(e){var t=e.dataset;return{state:t[this.options.dataAttr],show:t[this.options.dataAttr+"Show"],text:t[this.options.dataAttr+"Text"],icon:t[this.options.dataAttr+"Icon"],img:t[this.options.dataAttr+"Img"],video:t[this.options.dataAttr+"Video"],stick:t[this.options.dataAttr+"Stick"]}},t.destroy=function(){this.trigger("destroy"),this.gsap.ticker.remove(this.ticker),this.container.removeEventListener("mouseleave",this.event.mouseleave),this.container.removeEventListener("mouseenter",this.event.mouseenter),this.container.removeEventListener("mousedown",this.event.mousedown),this.container.removeEventListener("mouseup",this.event.mouseup),this.container.removeEventListener("mousemove",this.event.mousemove),this.container.removeEventListener("mousemove",this.event.mousemoveOnce),this.container.removeEventListener("mouseover",this.event.mouseover),this.container.removeEventListener("mouseout",this.event.mouseout),this.el&&(this.container.removeChild(this.el),this.el=null,this.mediaImg=null,this.mediaVideo=null)},e}()},"./node_modules/react-dom/cjs/react-dom.development.js":(e,t,n)=>{"use strict";(function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=n("./node_modules/react/index.js"),r=n("./node_modules/scheduler/index.js"),o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,a=!1;function i(e){if(!a){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r2&&("o"===e[0]||"O"===e[0])&&("n"===e[1]||"N"===e[1]))}function he(e,t,n,r){if(null!==n&&n.type===re)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":if(r)return!1;if(null!==n)return!n.acceptsBooleans;var o=e.toLowerCase().slice(0,5);return"data-"!==o&&"aria-"!==o;default:return!1}}function ve(e,t,n,r){if(null==t)return!0;if(he(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case oe:return!t;case ae:return!1===t;case ie:return isNaN(t);case se:return isNaN(t)||t<1}return!1}function ge(e){return be.hasOwnProperty(e)?be[e]:null}function ye(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||t===oe||t===ae,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var be={};["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"].forEach((function(e){be[e]=new ye(e,re,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0],n=e[1];be[t]=new ye(t,1,!1,n,null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){be[e]=new ye(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){be[e]=new ye(e,2,!1,e,null,!1,!1)})),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach((function(e){be[e]=new ye(e,oe,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){be[e]=new ye(e,oe,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){be[e]=new ye(e,ae,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){be[e]=new ye(e,se,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){be[e]=new ye(e,ie,!1,e.toLowerCase(),null,!1,!1)}));var we=/[\-\:]([a-z])/g,ke=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach((function(e){var t=e.replace(we,ke);be[t]=new ye(t,1,!1,e,null,!1,!1)})),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach((function(e){var t=e.replace(we,ke);be[t]=new ye(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(we,ke);be[t]=new ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){be[e]=new ye(e,1,!1,e.toLowerCase(),null,!1,!1)}));be.xlinkHref=new ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){be[e]=new ye(e,1,!1,e.toLowerCase(),null,!0,!0)}));var Se=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,xe=!1;function Ee(e){!xe&&Se.test(e)&&(xe=!0,s("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(e)))}function Ce(e,t,n,r){if(r.mustUseProperty)return e[r.propertyName];te(n,t),r.sanitizeURL&&Ee(""+n);var o=r.attributeName,a=null;if(r.type===ae){if(e.hasAttribute(o)){var i=e.getAttribute(o);return""===i||(ve(t,n,r,!1)?i:i===""+n?n:i)}}else if(e.hasAttribute(o)){if(ve(t,n,r,!1))return e.getAttribute(o);if(r.type===oe)return n;a=e.getAttribute(o)}return ve(t,n,r,!1)?null===a?n:a:a===""+n?n:a}function Te(e,t,n,r){if(pe(t)){if(!e.hasAttribute(t))return void 0===n?void 0:null;var o=e.getAttribute(t);return te(n,t),o===""+n?n:o}}function _e(e,t,n,r){var o=ge(t);if(!me(t,o,r))if(ve(t,n,o,r)&&(n=null),r||null===o){if(pe(t)){var a=t;null===n?e.removeAttribute(a):(te(n,t),e.setAttribute(a,""+n))}}else if(o.mustUseProperty){var i=o.propertyName;if(null===n){var s=o.type;e[i]=s!==oe&&""}else e[i]=n}else{var l=o.attributeName,u=o.attributeNamespace;if(null===n)e.removeAttribute(l);else{var c,d=o.type;d===oe||d===ae&&!0===n?c="":(te(n,l),c=""+n,o.sanitizeURL&&Ee(c.toString())),u?e.setAttributeNS(u,l,c):e.setAttribute(l,c)}}}var Re=Symbol.for("react.element"),Pe=Symbol.for("react.portal"),Le=Symbol.for("react.fragment"),Ne=Symbol.for("react.strict_mode"),De=Symbol.for("react.profiler"),Ie=Symbol.for("react.provider"),Oe=Symbol.for("react.context"),Me=Symbol.for("react.forward_ref"),ze=Symbol.for("react.suspense"),je=Symbol.for("react.suspense_list"),Ae=Symbol.for("react.memo"),Ue=Symbol.for("react.lazy"),Fe=(Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode"),Symbol.for("react.offscreen")),We=(Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker"),Symbol.iterator),Be="@@iterator";function Ve(e){if(null===e||"object"!=typeof e)return null;var t=We&&e[We]||e[Be];return"function"==typeof t?t:null}var He,Qe,qe,Ye,$e,Ge,Ke,Xe=Object.assign,Je=0;function Ze(){}Ze.__reactDisabledLog=!0;var et,tt=o.ReactCurrentDispatcher;function nt(e,t,n){if(void 0===et)try{throw Error()}catch(e){var r=e.stack.trim().match(/\n( *(at )?)/);et=r&&r[1]||""}return"\n"+et+e}var rt,ot=!1,at="function"==typeof WeakMap?WeakMap:Map;function it(e,t){if(!e||ot)return"";var n,r=rt.get(e);if(void 0!==r)return r;ot=!0;var o,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=tt.current,tt.current=null,function(){if(0===Je){He=console.log,Qe=console.info,qe=console.warn,Ye=console.error,$e=console.group,Ge=console.groupCollapsed,Ke=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Ze,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Je++}();try{if(t){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(i,[])}catch(e){n=e}Reflect.construct(e,[],i)}else{try{i.call()}catch(e){n=e}e.call(i.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&"string"==typeof t.stack){for(var l=t.stack.split("\n"),u=n.stack.split("\n"),c=l.length-1,d=u.length-1;c>=1&&d>=0&&l[c]!==u[d];)d--;for(;c>=1&&d>=0;c--,d--)if(l[c]!==u[d]){if(1!==c||1!==d)do{if(c--,--d<0||l[c]!==u[d]){var f="\n"+l[c].replace(" at new "," at ");return e.displayName&&f.includes("")&&(f=f.replace("",e.displayName)),"function"==typeof e&&rt.set(e,f),f}}while(c>=1&&d>=0);break}}}finally{ot=!1,tt.current=o,function(){if(0==--Je){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Xe({},e,{value:He}),info:Xe({},e,{value:Qe}),warn:Xe({},e,{value:qe}),error:Xe({},e,{value:Ye}),group:Xe({},e,{value:$e}),groupCollapsed:Xe({},e,{value:Ge}),groupEnd:Xe({},e,{value:Ke})})}Je<0&&s("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var p=e?e.displayName||e.name:"",m=p?nt(p):"";return"function"==typeof e&&rt.set(e,m),m}function st(e,t,n){return it(e,!1)}function lt(e,t,n){if(null==e)return"";if("function"==typeof e)return it(e,!(!(r=e.prototype)||!r.isReactComponent));var r;if("string"==typeof e)return nt(e);switch(e){case ze:return nt("Suspense");case je:return nt("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case Me:return st(e.render);case Ae:return lt(e.type,t,n);case Ue:var o=e,a=o._payload,i=o._init;try{return lt(i(a),t,n)}catch(e){}}return""}function ut(e){e._debugOwner&&e._debugOwner.type,e._debugSource;switch(e.tag){case m:return nt(e.type);case C:return nt("Lazy");case S:return nt("Suspense");case R:return nt("SuspenseList");case u:case d:case E:return st(e.type);case w:return st(e.type.render);case c:return it(e.type,!0);default:return""}}function ct(e){try{var t="",n=e;do{t+=ut(n),n=n.return}while(n);return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}function dt(e){return e.displayName||"Context"}function ft(e){if(null==e)return null;if("number"==typeof e.tag&&s("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Le:return"Fragment";case Pe:return"Portal";case De:return"Profiler";case Ne:return"StrictMode";case ze:return"Suspense";case je:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case Oe:return dt(e)+".Consumer";case Ie:return dt(e._context)+".Provider";case Me:return function(e,t,n){var r=e.displayName;if(r)return r;var o=t.displayName||t.name||"";return""!==o?n+"("+o+")":n}(e,e.render,"ForwardRef");case Ae:var t=e.displayName||null;return null!==t?t:ft(e.type)||"Memo";case Ue:var n=e,r=n._payload,o=n._init;try{return ft(o(r))}catch(e){return null}}return null}function pt(e){return e.displayName||"Context"}function mt(e){var t,n,r,o,a=e.tag,i=e.type;switch(a){case D:return"Cache";case y:return pt(i)+".Consumer";case b:return pt(i._context)+".Provider";case _:return"DehydratedFragment";case w:return t=i,n=i.render,r="ForwardRef",o=n.displayName||n.name||"",t.displayName||(""!==o?r+"("+o+")":r);case v:return"Fragment";case m:return i;case p:return"Portal";case f:return"Root";case h:return"Text";case C:return ft(i);case g:return i===Ne?"StrictMode":"Mode";case L:return"Offscreen";case k:return"Profiler";case P:return"Scope";case S:return"Suspense";case R:return"SuspenseList";case I:return"TracingMarker";case c:case u:case T:case d:case x:case E:if("function"==typeof i)return i.displayName||i.name||null;if("string"==typeof i)return i}return null}rt=new at;var ht=o.ReactDebugCurrentFrame,vt=null,gt=!1;function yt(){if(null===vt)return null;var e=vt._debugOwner;return null!=e?mt(e):null}function bt(){return null===vt?"":ct(vt)}function wt(){ht.getCurrentStack=null,vt=null,gt=!1}function kt(e){ht.getCurrentStack=null===e?null:bt,vt=e,gt=!1}function St(e){gt=e}function xt(e){return""+e}function Et(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return ne(e),e;default:return""}}var Ct={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function Tt(e,t){Ct[t.type]||t.onChange||t.onInput||t.readOnly||t.disabled||null==t.value||s("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),t.onChange||t.readOnly||t.disabled||null==t.checked||s("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function _t(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function Rt(e){return e._valueTracker}function Pt(e){Rt(e)||(e._valueTracker=function(e){var t=_t(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);ne(e[t]);var r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){ne(e),r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable});var i={getValue:function(){return r},setValue:function(e){ne(e),r=""+e},stopTracking:function(){!function(e){e._valueTracker=null}(e),delete e[t]}};return i}}(e))}function Lt(e){if(!e)return!1;var t=Rt(e);if(!t)return!0;var n=t.getValue(),r=function(e){var t="";return e?t=_t(e)?e.checked?"true":"false":e.value:t}(e);return r!==n&&(t.setValue(r),!0)}function Nt(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var Dt=!1,It=!1,Ot=!1,Mt=!1;function zt(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}function jt(e,t){var n=e,r=t.checked;return Xe({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=r?r:n._wrapperState.initialChecked})}function At(e,t){Tt(0,t),void 0===t.checked||void 0===t.defaultChecked||It||(s("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",yt()||"A component",t.type),It=!0),void 0===t.value||void 0===t.defaultValue||Dt||(s("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",yt()||"A component",t.type),Dt=!0);var n=e,r=null==t.defaultValue?"":t.defaultValue;n._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:Et(null!=t.value?t.value:r),controlled:zt(t)}}function Ut(e,t){var n=e,r=t.checked;null!=r&&_e(n,"checked",r,!1)}function Ft(e,t){var n=e,r=zt(t);n._wrapperState.controlled||!r||Mt||(s("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Mt=!0),!n._wrapperState.controlled||r||Ot||(s("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Ot=!0),Ut(e,t);var o=Et(t.value),a=t.type;if(null!=o)"number"===a?(0===o&&""===n.value||n.value!=o)&&(n.value=xt(o)):n.value!==xt(o)&&(n.value=xt(o));else if("submit"===a||"reset"===a)return void n.removeAttribute("value");t.hasOwnProperty("value")?Vt(n,t.type,o):t.hasOwnProperty("defaultValue")&&Vt(n,t.type,Et(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(n.defaultChecked=!!t.defaultChecked)}function Wt(e,t,n){var r=e;if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var o=t.type;if(("submit"===o||"reset"===o)&&(void 0===t.value||null===t.value))return;var a=xt(r._wrapperState.initialValue);n||a!==r.value&&(r.value=a),r.defaultValue=a}var i=r.name;""!==i&&(r.name=""),r.defaultChecked=!r.defaultChecked,r.defaultChecked=!!r._wrapperState.initialChecked,""!==i&&(r.name=i)}function Bt(e,t){var n=e;Ft(n,t),function(e,t){var n=t.name;if("radio"===t.type&&null!=n){for(var r=e;r.parentNode;)r=r.parentNode;te(n,"name");for(var o=r.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),a=0;a.")))})):null!=n.dangerouslySetInnerHTML&&(qt||(qt=!0,s("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")))),null==n.selected||Ht||(s("Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",n,Xt())}}}(t),n._wrapperState={wasMultiple:!!t.multiple},void 0===t.value||void 0===t.defaultValue||$t||(s("Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://reactjs.org/link/controlled-components"),$t=!0)}var nn=!1;function rn(e,t){var n=e;if(null!=t.dangerouslySetInnerHTML)throw new Error("`dangerouslySetInnerHTML` does not make sense on