@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 2);animation-iteration-count:calc(var(--animate-repeat) * 2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 3);animation-iteration-count:calc(var(--animate-repeat) * 3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay) * 2);animation-delay:calc(var(--animate-delay) * 2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay) * 3);animation-delay:calc(var(--animate-delay) * 3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay) * 4);animation-delay:calc(var(--animate-delay) * 4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay) * 5);animation-delay:calc(var(--animate-delay) * 5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration) / 2);animation-duration:calc(var(--animate-duration) / 2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration) * .8);animation-duration:calc(var(--animate-duration) * .8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration) * 3);animation-duration:calc(var(--animate-duration) * 3)}@media print,(prefers-reduced-motion:reduce){.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translate(0,0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translate(0,0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scale(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scale(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translate(0,0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translate(0,0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scale(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translate(0,0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translate(0,0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translate(0,0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration) * 1.3);animation-duration:calc(var(--animate-duration) * 1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scale(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translate(0,0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translate(0,0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translate(0,0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translate(0,0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scale(1)translate(0,0)rotateY(-360deg)}40%{animation-timing-function:ease-out;transform:perspective(400px)scale(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scale(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translate(0,0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scale(1)translate(0,0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translate(0,0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translate(0,0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translate(0,0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translate(0,0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translate(0,0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translate(0,0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translate(0,0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translate(0,0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translate(0,0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translate(0,0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translate(0,0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.contents{display:contents}.hidden{display:none}.table{display:table}}:root{--ink:#101114;--paper:#f3f0e9;--paper-bright:#fbf9f4;--muted:#6f716f;--line:#d7d3ca;--teal:#5ff6df;--violet:#a783ff;--acid:#d9ff68}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);text-rendering:optimizelegibility;margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--violet);outline-offset:4px}::selection{background:var(--teal);color:var(--ink)}.site-header{border-bottom:1px solid var(--line);z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;width:min(1440px,100% - 64px);height:88px;margin:0 auto;display:grid;position:relative}.wordmark{font:800 15px/1 var(--font-geist-mono), monospace;letter-spacing:.08em}.wordmark span{color:var(--violet)}.site-header nav{gap:32px;font-size:13px;display:flex}.site-header nav a,footer a,footer button{transition:color .2s}.site-header nav a:hover,footer a:hover,footer button:hover{color:#6b42cf}.header-cta{border:0;border-bottom:1px solid var(--ink);color:inherit;cursor:pointer;background:0 0;justify-self:end;padding:0 0 5px;font:700 13px/1.2 Arial,Helvetica,sans-serif}.header-cta span,.button span,.project-footer a span,.all-work span,.contact-email span{color:#7149d2}.contact-card-overlay{z-index:1100;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#101114c7;place-items:center;padding:20px;animation:.2s both request-overlay-in;display:grid;position:fixed;inset:0}.contact-card-dialog{background:var(--paper-bright);border:1px solid var(--line);width:min(650px,100%);max-height:calc(100vh - 40px);box-shadow:18px 18px 0 var(--teal);padding:clamp(34px,5vw,58px);animation:.25s both request-dialog-in;position:relative;overflow-y:auto}.contact-card-dialog h2{letter-spacing:-.055em;max-width:510px;margin:0 0 18px;font-size:clamp(42px,6vw,68px);line-height:.95}.contact-card-intro{color:#555759;max-width:520px;margin-bottom:30px;font-size:15px;line-height:1.65}.contact-card-close{border:1px solid var(--ink);width:42px;height:42px;color:var(--ink);cursor:pointer;background:0 0;font:400 27px/1 Arial,sans-serif;position:absolute;top:18px;right:18px}.contact-card-close:hover,.contact-card-close:focus-visible{background:var(--ink);color:#fff}.contact-card-links{gap:10px;display:grid}.contact-card-link{border:1px solid var(--line);background:#fff;grid-template-columns:minmax(80px,.45fr) 1fr auto;align-items:center;gap:16px;min-height:68px;padding:14px 16px;transition:transform .2s,border-color .2s,background .2s;display:grid}.contact-card-link:hover{border-color:var(--violet);background:#f6f2ff;transform:translate(4px)}.contact-card-link span{color:#7350c7;font:700 10px/1.2 var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.08em}.contact-card-link strong{font-size:14px;line-height:1.35}.contact-card-link b{color:#7350c7;font-size:18px}.contact-card-link-primary{border-color:var(--ink);background:var(--ink);color:#fff}.contact-card-link-primary:hover{background:#292b31}.hero{grid-template-columns:1.06fr .94fr;align-items:center;gap:clamp(48px,8vw,124px);width:min(1440px,100% - 64px);min-height:710px;margin:0 auto;padding:72px 0 96px;display:grid}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.15em;font:700 11px/1.3 var(--font-geist-mono), monospace;margin:0 0 28px}.eyebrow{align-items:center;gap:10px;display:flex}.eyebrow span{background:var(--teal);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #5ff6df29}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.075em;max-width:720px;margin-bottom:28px;font-size:clamp(58px,6.1vw,98px);font-weight:760;line-height:.92}h1 em,.contact-section h2 em{color:#7451cf;font-family:Georgia,Times New Roman,serif;font-weight:400}.hero-intro{color:#47494b;max-width:660px;font-size:clamp(17px,1.55vw,21px);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.button{border:1px solid var(--ink);align-items:center;gap:22px;min-height:52px;padding:0 22px;font-size:13px;font-weight:700;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:#fff}.button-primary:hover{background:#292b31}.button-primary span{color:var(--teal)}.button-secondary:hover{background:#fff}.resume-request-trigger{cursor:pointer;background:0 0;font-family:inherit}.resume-request-trigger span{color:#7149d2}.resume-request-overlay{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101114c2;place-items:center;padding:20px;animation:.2s both request-overlay-in;display:grid;position:fixed;inset:0}.resume-request-dialog{background:var(--paper-bright);border:1px solid var(--line);width:min(760px,100%);max-height:calc(100vh - 40px);box-shadow:18px 18px 0 var(--violet);padding:clamp(32px,5vw,58px);animation:.25s both request-dialog-in;position:relative;overflow-y:auto}.resume-request-dialog h2{letter-spacing:-.055em;max-width:620px;margin:0 0 20px;font-size:clamp(42px,6vw,68px);line-height:.96}.resume-request-close{border:1px solid var(--ink);width:42px;height:42px;color:var(--ink);cursor:pointer;background:0 0;font:400 27px/1 Arial,sans-serif;position:absolute;top:18px;right:18px}.resume-request-close:hover,.resume-request-close:focus-visible{background:var(--ink);color:#fff}.resume-request-intro,.resume-request-success>p:not(.section-kicker){color:#555759;max-width:600px;margin-bottom:34px;font-size:15px;line-height:1.65}.resume-request-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.resume-request-fields label{flex-direction:column;gap:9px;display:flex}.resume-request-fields label>span{color:#343638;font:700 10px/1.2 var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;display:flex}.resume-request-fields label>span b{color:#7350c7;font-size:8px}.resume-request-fields input,.resume-request-fields textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bdb8ad;border-radius:0;padding:14px 15px;font:400 15px/1.45 Arial,Helvetica,sans-serif}.resume-request-fields input{min-height:50px}.resume-request-fields textarea{resize:vertical;min-height:132px}.resume-request-fields input:focus,.resume-request-fields textarea:focus{border-color:#7350c7;outline:3px solid #a783ff73}.resume-request-note{grid-column:1/-1}.resume-request-honeypot{display:none!important}.resume-request-privacy{color:var(--muted);font:500 9px/1.55 var(--font-geist-mono),monospace;margin:18px 0}.resume-request-error{color:#772d3a;background:#f7e7e9;border-left:3px solid #a44152;margin:0 0 18px;padding:12px 14px;font-size:13px;line-height:1.5}.resume-request-error a{font-weight:700;text-decoration:underline}.resume-request-submit{cursor:pointer}.resume-request-submit:disabled{cursor:wait;opacity:.65;transform:none}.resume-request-success{flex-direction:column;justify-content:center;align-items:flex-start;min-height:360px;display:flex}@keyframes request-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes request-dialog-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.location{color:var(--muted);font:600 11px/1 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:10px;margin:28px 0 0;display:flex}.location i{background:currentColor;border-radius:50%;width:3px;height:3px}.hero-visual{background:var(--ink);color:#fff;min-height:500px;box-shadow:22px 22px 0 var(--violet);flex-direction:column;padding:24px;display:flex;position:relative;overflow:hidden}.hero-visual:after{content:"";border:1px solid #5ff6df47;border-radius:50%;width:280px;height:280px;position:absolute;top:-170px;right:-180px;box-shadow:0 0 0 30px #5ff6df09,0 0 0 60px #a783ff09}.visual-topline{color:#a9abb0;text-transform:uppercase;letter-spacing:.13em;font:600 10px/1 var(--font-geist-mono), monospace;justify-content:space-between;align-items:center;display:flex}.visual-topline b{color:var(--teal);align-items:center;gap:7px;font-weight:700;display:flex}.visual-topline b:before{content:"";background:var(--teal);width:6px;height:6px;box-shadow:0 0 8px var(--teal);border-radius:50%}.signal-chart{border-bottom:1px solid #3c3e45;border-left:1px solid #3c3e45;height:285px;margin:38px 0 26px;position:relative}.grid-lines{background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:100% 25%,20% 100%;position:absolute;inset:0}.trend-line{background:linear-gradient(90deg, var(--violet), var(--teal));width:76%;height:2px;position:absolute;top:52%;left:9%;transform:rotate(-21deg);box-shadow:0 0 18px #5ff6df99}.trend-line:before,.trend-line:after{content:"";background:inherit;transform-origin:0;height:2px;position:absolute}.trend-line:before{width:27%;left:0;transform:rotate(28deg)}.trend-line:after{width:33%;right:-2%;transform:rotate(-20deg)}.signal-dot{background:var(--teal);border:3px solid var(--ink);width:11px;height:11px;box-shadow:0 0 0 1px var(--teal);z-index:2;border-radius:50%;position:absolute}.dot-one{top:64%;left:17%}.dot-two{top:48%;left:51%}.dot-three{top:22%;right:10%}.chart-label{color:#8e9198;font:600 9px/1 var(--font-geist-mono), monospace;letter-spacing:.1em;position:absolute}.label-a{bottom:8%;left:2%}.label-b{bottom:8%;left:46%}.label-c{color:var(--teal);top:8%;right:1%}.visual-metrics{border-top:1px solid #383a40;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:auto;padding-top:20px;display:grid}.visual-metrics div{border-right:1px solid #383a40;padding-right:12px}.visual-metrics div:last-child{border:0}.visual-metrics strong{color:var(--paper-bright);letter-spacing:-.05em;font-size:clamp(26px,3vw,42px);display:block}.visual-metrics span{color:#8e9198;font:500 9px/1.4 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.07em}.signal-strip{background:var(--violet);text-transform:uppercase;letter-spacing:.1em;min-height:58px;font:800 10px/1.3 var(--font-geist-mono), monospace;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(16px,3vw,42px);padding:16px 32px;display:flex}.signal-strip i{color:var(--teal);font-style:normal}.section{padding:120px max(32px,50vw - 720px)}.section-heading{grid-template-columns:1.45fr .55fr;align-items:end;gap:48px;margin-bottom:64px;display:grid}.section-heading h2,.about-copy h2{letter-spacing:-.055em;margin:0;font-size:clamp(44px,5vw,72px);line-height:.96}.section-heading>p{max-width:430px;color:var(--muted);margin:0;font-size:15px;line-height:1.6}.section-kicker{color:#7350c7;margin-bottom:22px}.work-section{background:var(--paper-bright)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.project-card{border:1px solid var(--line);background:var(--paper);min-width:0;transition:transform .25s,box-shadow .25s}.project-card:hover{transform:translateY(-4px);box-shadow:0 18px 48px #19162117}.project-visual{background:#191a1f;height:265px;padding:26px;overflow:hidden}.project-body{padding:30px}.project-meta{color:#7350c7;text-transform:uppercase;letter-spacing:.11em;font:700 9px/1 var(--font-geist-mono), monospace;justify-content:space-between;display:flex}.project-body h3{letter-spacing:-.04em;margin:26px 0 14px;font-size:30px}.project-body>p{color:#555759;max-width:620px;font-size:14px;line-height:1.65}.project-outcome{border-top:1px solid var(--line);padding-top:15px;font:600 10px/1.5 var(--font-geist-mono), monospace!important;color:#393b3d!important}.project-footer{justify-content:space-between;align-items:end;gap:20px;margin-top:22px;display:flex}.project-footer ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.project-footer li,.cert-row span{font:600 9px/1 var(--font-geist-mono), monospace;text-transform:uppercase;border:1px solid #c8c4ba;padding:6px 8px}.project-footer a{white-space:nowrap;font-size:12px;font-weight:800}.all-work{flex-wrap:wrap;justify-content:flex-end;gap:24px;margin-top:28px;font-size:12px;font-weight:800;display:flex}.all-work a{border-bottom:1px solid var(--ink);padding-bottom:5px}.pipeline-visual{color:#fff;height:100%;font:700 10px/1 var(--font-geist-mono), monospace;justify-content:center;align-items:center;gap:clamp(7px,1.2vw,18px);display:flex}.pipeline-visual span{border:1px solid #52545b;padding:14px 12px}.pipeline-visual strong{background:var(--teal);color:var(--ink);padding:17px 14px;font-size:9px}.pipeline-visual b{color:var(--violet)}.pipeline-visual i{color:#777a82;font-style:normal}.chart{height:100%;position:relative}.scatter-chart{background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:100% 25%,25% 100%;border-bottom:1px solid #4d4f56;border-left:1px solid #4d4f56}.scatter-chart i{background:var(--teal);opacity:.88;border-radius:50%;width:16px;height:16px;position:absolute;box-shadow:0 0 0 5px #5ff6df14}.scatter-chart .p1{bottom:20%;left:12%}.scatter-chart .p2{background:var(--violet);bottom:42%;left:26%}.scatter-chart .p3{bottom:31%;left:39%}.scatter-chart .p4{background:var(--acid);bottom:64%;left:51%}.scatter-chart .p5{background:var(--violet);bottom:52%;left:62%}.scatter-chart .p6{bottom:78%;left:71%}.scatter-chart .p7{background:var(--acid);bottom:62%;left:84%}.scatter-chart .p8{bottom:88%;left:89%}.map-chart{background:radial-gradient(circle at 28% 40%,#5ff6df1f,#0000 25%),linear-gradient(135deg,#22242a,#15161a)}.region{background:#353840;border:1px solid #5b5e67;position:absolute;transform:skew(-9deg)rotate(-4deg)}.r1{width:31%;height:29%;top:28%;left:12%}.r2{width:24%;height:34%;top:19%;left:39%}.r3{width:28%;height:36%;top:35%;left:59%}.r4{width:28%;height:23%;top:55%;left:24%}.r5{width:22%;height:25%;top:54%;left:48%}.pin{background:var(--teal);border-radius:50% 50% 50% 0;width:14px;height:14px;position:absolute;transform:rotate(-45deg);box-shadow:0 0 0 5px #5ff6df1a}.pin-a{top:39%;left:31%}.pin-b{background:var(--violet);top:33%;left:55%}.pin-c{background:var(--acid);top:58%;left:70%}.bar-chart{background-image:linear-gradient(#ffffff0d 1px,#0000 1px);background-size:100% 25%;border-bottom:1px solid #4d4f56;align-items:flex-end;gap:8%;padding:18px 8% 0;display:flex}.bar-chart i{background:linear-gradient(var(--teal),#248d83);flex:1;min-width:16px;position:relative}.bar-chart i:nth-child(2n){background:linear-gradient(var(--violet),#5f46a1)}.bar-chart span{text-align:center;color:#72747a;width:100%;font:8px/1 var(--font-geist-mono),monospace;position:absolute;bottom:-18px}.experience-section{background:var(--ink);color:var(--paper-bright)}.light-heading .section-kicker{color:var(--teal)}.light-heading>p{color:#9a9ca2}.timeline{border-top:1px solid #3b3d42}.timeline article{border-bottom:1px solid #3b3d42;grid-template-columns:.72fr 1.05fr 1.35fr;gap:40px;padding:34px 0;display:grid}.timeline-date{color:var(--teal);font:600 10px/1.3 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.08em;margin:4px 0 0}.timeline h3{letter-spacing:-.02em;margin:0 0 8px;font-size:20px}.company{color:var(--violet);font:600 11px/1.3 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.07em;margin:0}.timeline-summary{color:#aaaeb4;margin:0;font-size:14px;line-height:1.65}.about-section{background:var(--paper);grid-template-columns:1fr .82fr;gap:clamp(56px,9vw,140px);display:grid}.about-copy>p:not(.section-kicker){color:#555759;max-width:720px;font-size:16px;line-height:1.75}.about-copy h2{margin-bottom:36px}.education{border-top:1px solid var(--line);margin-top:38px;padding-top:22px}.education>span,.toolbox>p{color:#7350c7;text-transform:uppercase;letter-spacing:.12em;font:700 10px/1 var(--font-geist-mono),monospace;margin-bottom:20px;display:block}.education p{margin:9px 0!important;font-size:12px!important}.toolbox{background:var(--paper-bright);border:1px solid var(--line);padding:clamp(28px,4vw,48px)}.tool-group{border-top:1px solid var(--line);padding:20px 0}.tool-group span{color:var(--muted);font:600 9px/1 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.1em}.tool-group p{margin:10px 0 0;font-size:14px;font-weight:600;line-height:1.55}.cert-row{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.testimonials-section{background:var(--paper-bright)}.testimonial-carousel{border-top:1px solid var(--line);touch-action:pan-y;outline:none}.testimonial-carousel:focus-visible{outline:3px solid var(--violet);outline-offset:7px}.testimonial-card-window{overflow:hidden}.testimonial-card-grid{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.testimonial-card-grid.animate__animated{--animate-duration:.52s;will-change:opacity, transform}.testimonial-card{border-right:1px solid var(--line);flex-direction:column;min-height:590px;margin:0;padding:34px 30px 30px;display:flex;position:relative;overflow:hidden}.testimonial-card:last-child{border-right:0}.testimonial-quote-mark{height:58px;color:var(--violet);font:400 80px/.9 Georgia,Times New Roman,serif}.testimonial-card blockquote{letter-spacing:-.018em;margin:18px 0 0;font:400 clamp(17px,1.35vw,21px)/1.52 Georgia,Times New Roman,serif}.testimonial-card figcaption{flex-direction:column;gap:6px;margin-top:auto;padding-top:40px;padding-right:36px;display:flex}.testimonial-card figcaption strong{font-size:13px}.testimonial-card figcaption span{color:var(--muted);font:500 9px/1.4 var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.06em}.testimonial-card-number{color:var(--muted);font:700 9px/1 var(--font-geist-mono),monospace;letter-spacing:.1em;position:absolute;top:28px;right:28px}.carousel-controls{grid-template-columns:1fr auto;align-items:center;gap:24px;padding-top:18px;display:grid}.carousel-dots{align-items:center;gap:8px;display:flex}.carousel-dots button{cursor:pointer;background:#d2cec4;border:0;width:clamp(24px,4vw,54px);height:5px;padding:0;transition:background .2s,transform .2s}.carousel-dots button:hover{background:#aaa59b}.carousel-dots button.active{background:var(--violet);transform:scaleY(1.6)}.carousel-arrows{gap:8px;display:flex}.carousel-arrows button{border:1px solid var(--ink);width:48px;height:48px;color:var(--ink);cursor:pointer;background:0 0;font-size:20px;transition:background .2s,color .2s}.carousel-arrows button:hover,.carousel-arrows button:focus-visible{background:var(--ink);color:#fff}.carousel-hint{text-align:right;color:var(--muted);font:600 9px/1.5 var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.08em;margin:12px 0 0}.contact-section{background:var(--violet);text-align:center;padding:120px 32px}.contact-section .section-kicker{color:var(--ink)}.contact-section h2{letter-spacing:-.06em;margin:0 auto 26px;font-size:clamp(54px,7vw,106px);line-height:.92}.contact-section h2 em{color:#fff}.contact-section>p:not(.section-kicker){max-width:650px;margin:0 auto 36px;line-height:1.6}.contact-email{border-bottom:2px solid var(--ink);align-items:center;gap:28px;padding-bottom:8px;font-size:clamp(16px,2vw,24px);font-weight:800;display:inline-flex}.contact-email span{color:#fff}footer{background:var(--ink);color:#b4b6ba;grid-template-columns:1fr auto 1fr;align-items:center;min-height:100px;padding:0 max(32px,50vw - 720px);font-size:13.2px;font-weight:700;display:grid}footer p{margin:0}footer div{gap:24px;display:flex}footer>a{justify-self:end}.analytics-preferences{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.analytics-consent{z-index:1200;background:var(--ink);color:#fff;width:min(920px,100% - 40px);box-shadow:10px 10px 0 var(--violet);border:1px solid #45474e;justify-content:space-between;align-items:center;gap:30px;padding:22px 24px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.analytics-consent strong{margin-bottom:7px;font-size:16px;display:block}.analytics-consent p{color:#b4b6ba;max-width:590px;margin:0;font-size:12px;line-height:1.55}.analytics-consent-actions{flex:none;gap:8px;display:flex}.analytics-consent-actions button{cursor:pointer;border:1px solid #fff;min-height:44px;padding:0 16px;font:700 11px/1 Arial,Helvetica,sans-serif}.analytics-decline{color:#fff;background:0 0}.analytics-accept{background:var(--teal);color:var(--ink);border-color:var(--teal)!important}.analytics-consent-actions button:focus-visible,.analytics-preferences:focus-visible{outline:3px solid var(--violet);outline-offset:3px}@media (max-width:980px){.site-header{grid-template-columns:1fr auto;width:min(100% - 36px,1440px)}.site-header nav{display:none}.hero{grid-template-columns:1fr;width:min(100% - 36px,1440px);padding-top:64px}.hero-copy{max-width:800px}.hero-visual{max-width:760px;min-height:450px}.section{padding:92px 28px}.section-heading{grid-template-columns:1fr}.section-heading>p{max-width:620px}.timeline article{grid-template-columns:.7fr 1fr}.timeline-summary{grid-column:2}.about-section{grid-template-columns:1fr}.testimonial-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}footer{grid-template-columns:1fr auto;gap:22px;padding-top:30px;padding-bottom:30px}footer div{grid-row:2}footer>a{grid-area:2/2}}@media (max-width:720px){.site-header{height:72px}.header-cta{font-size:11px}.hero{gap:64px;min-height:auto;padding:54px 0 76px}h1{font-size:clamp(52px,17vw,78px)}.hero-intro{font-size:16px}.button{justify-content:space-between;width:100%}.resume-request-overlay{padding:10px}.resume-request-dialog{max-height:calc(100vh - 20px);box-shadow:8px 8px 0 var(--violet);padding:34px 20px 28px}.resume-request-dialog h2{padding-right:30px;font-size:43px}.resume-request-fields{grid-template-columns:1fr}.resume-request-note{grid-column:auto}.resume-request-close{width:38px;height:38px;top:12px;right:12px}.contact-card-overlay{padding:10px}.contact-card-dialog{max-height:calc(100vh - 20px);box-shadow:8px 8px 0 var(--teal);padding:34px 20px 28px}.contact-card-dialog h2{padding-right:30px;font-size:43px}.contact-card-close{width:38px;height:38px;top:12px;right:12px}.contact-card-link{grid-template-columns:72px 1fr auto;gap:10px}.contact-card-link strong{font-size:12px}.hero-visual{min-height:430px;box-shadow:10px 10px 0 var(--violet);padding:18px}.visual-metrics{gap:8px}.visual-metrics strong{font-size:28px}.visual-metrics span{font-size:8px}.signal-strip{justify-content:flex-start}.section{padding:78px 18px}.section-heading{gap:22px;margin-bottom:44px}.section-heading h2,.about-copy h2{font-size:44px}.project-grid{grid-template-columns:1fr}.project-visual{height:220px;padding:18px}.project-body{padding:24px 20px}.project-footer{flex-direction:column;align-items:flex-start}.all-work{flex-direction:column;justify-content:flex-start;align-items:flex-start}.timeline article{grid-template-columns:1fr;gap:14px;padding:28px 0}.timeline-summary{grid-column:auto}.testimonial-card-grid{grid-template-columns:1fr}.testimonial-card{border-right:0;min-height:540px;padding:30px 20px}.testimonial-card blockquote{font-size:19px;line-height:1.5}.testimonial-card figcaption{padding-top:36px}.testimonial-card-number{top:24px;right:20px}.carousel-controls{gap:16px}.carousel-dots{gap:5px}.carousel-dots button{flex:1;min-width:17px}.carousel-arrows button{width:44px;height:44px}.carousel-hint{text-align:left}.contact-section{padding:88px 18px}.contact-section h2{font-size:52px}.contact-email{gap:14px;font-size:15px}footer{grid-template-columns:1fr;align-items:start}footer div,footer>a{grid-area:auto;justify-self:start}.analytics-consent{width:calc(100% - 20px);box-shadow:6px 6px 0 var(--violet);flex-direction:column;align-items:stretch;gap:18px;padding:20px;bottom:10px}.analytics-consent-actions{grid-template-columns:1fr 1fr;display:grid}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
