.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-\[calc\(50\%_-_25px\)\]{bottom:calc(50% - 25px)}.left-0{left:0}.right-0{right:0}.right-\[20\%\]{right:20%}.top-0{top:0}.top-\[calc\(50\%_-_25px\)\]{top:calc(50% - 25px)}.z-10{z-index:10}.z-\[1000\]{z-index:1000}.z-\[998\]{z-index:998}.z-\[999\]{z-index:999}.m-auto{margin:auto}.mx-56{margin-left:14rem;margin-right:14rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-\[0\.8rem\]{margin-bottom:.8rem}.mb-\[10rem\]{margin-bottom:10rem}.ml-14{margin-left:3.5rem}.ml-8{margin-left:2rem}.mr-10{margin-right:2.5rem}.mr-20{margin-right:5rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mt-16{margin-top:4rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-20{height:5rem}.h-4{height:1rem}.h-\[24rem\]{height:24rem}.h-\[40px\]{height:40px}.h-\[40rem\]{height:40rem}.h-\[50rem\]{height:50rem}.h-\[5rem\]{height:5rem}.h-\[8rem\]{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[30rem\]{max-height:30rem}.w-20{width:5rem}.w-24{width:6rem}.w-\[1\.6rem\]{width:1.6rem}.w-\[40px\]{width:40px}.w-full{width:100%}.w-screen{width:100vw}.min-w-56{min-width:14rem}.min-w-\[31rem\]{min-width:31rem}.min-w-\[40rem\]{min-width:40rem}.max-w-72{max-width:18rem}.max-w-\[31rem\]{max-width:31rem}.max-w-\[61rem\]{max-width:61rem}.max-w-\[98rem\]{max-width:98rem}.flex-shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-10{gap:2.5rem}.gap-16{gap:4rem}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.rounded-\[18px\]{border-radius:18px}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0}.border-b-0{border-bottom-width:0}.border-b-\[1px\]{border-bottom-width:1px}.border-l-0{border-left-width:0}.border-r-0{border-right-width:0}.border-r-\[1px\]{border-right-width:1px}.border-t-0{border-top-width:0}.border-solid{border-style:solid}.border-none{border-style:none}.border-\[\#f5f5f72e\]{border-color:#f5f5f72e}.border-current{border-color:currentColor}.border-b-\[\#424245\]{--tw-border-opacity:1;border-bottom-color:rgb(66 66 69/var(--tw-border-opacity))}.border-b-\[\#d2d2d7\]{--tw-border-opacity:1;border-bottom-color:rgb(210 210 215/var(--tw-border-opacity))}.bg-\[\#d2d2d7e8\]{background-color:#d2d2d7e8}.bg-backdrop-bg{background-color:var(--menu-backdrop-bg)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-navbg{background-color:var(--nav-bg)}.bg-primary-bg{background-color:var(--primary-bg)}.bg-project-card-bg{background-color:var(--project-card-bg)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-12{padding:3rem}.px-12{padding-left:3rem;padding-right:3rem}.px-20{padding-left:5rem;padding-right:5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-56{padding-left:14rem;padding-right:14rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[1\.1rem\]{padding-left:1.1rem;padding-right:1.1rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-28{padding-top:7rem;padding-bottom:7rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-\[0\.7rem\]{padding-top:.7rem;padding-bottom:.7rem}.py-\[0\.8rem\]{padding-top:.8rem;padding-bottom:.8rem}.py-\[1\.1rem\]{padding-top:1.1rem;padding-bottom:1.1rem}.py-\[1\.2rem\]{padding-top:1.2rem;padding-bottom:1.2rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-7{padding-bottom:1.75rem}.pb-8{padding-bottom:2rem}.pb-\[0\.6rem\]{padding-bottom:.6rem}.pb-\[0\.7rem\]{padding-bottom:.7rem}.pb-\[1rem\]{padding-bottom:1rem}.pb-\[2\.4rem\]{padding-bottom:2.4rem}.pb-\[5rem\]{padding-bottom:5rem}.pl-0{padding-left:0}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-\[2\.3rem\]{padding-right:2.3rem}.pr-\[4\.4rem\]{padding-right:4.4rem}.pr-\[8\.8rem\]{padding-right:8.8rem}.pt-16{padding-top:4rem}.pt-20{padding-top:5rem}.pt-4{padding-top:1rem}.pt-\[0\.9rem\]{padding-top:.9rem}.pt-\[1\.6rem\]{padding-top:1.6rem}.pt-\[5\.4rem\]{padding-top:5.4rem}.text-center{text-align:center}.text-\[1\.2rem\]{font-size:1.2rem}.text-\[1\.3rem\]{font-size:1.3rem}.text-\[1\.4rem\]{font-size:1.4rem}.text-\[1\.6rem\]{font-size:1.6rem}.text-\[1\.7rem\]{font-size:1.7rem}.text-\[2\.2rem\]{font-size:2.2rem}.text-\[2\.4rem\]{font-size:2.4rem}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2\.8rem\]{font-size:2.8rem}.text-\[2rem\]{font-size:2rem}.text-\[4rem\]{font-size:4rem}.font-light{font-weight:300}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-8{line-height:2rem}.leading-\[4\.5rem\]{line-height:4.5rem}.text-\[\#0066cc\]{--tw-text-opacity:1;color:rgb(0 102 204/var(--tw-text-opacity))}.text-\[\#007aff\]{--tw-text-opacity:1;color:rgb(0 122 255/var(--tw-text-opacity))}.text-\[\#1d1d1f\]{--tw-text-opacity:1;color:rgb(29 29 31/var(--tw-text-opacity))}.text-\[\#68CC45\]{--tw-text-opacity:1;color:rgb(104 204 69/var(--tw-text-opacity))}.text-\[\#6e6e73\]{--tw-text-opacity:1;color:rgb(110 110 115/var(--tw-text-opacity))}.text-\[\#FE4685\]{--tw-text-opacity:1;color:rgb(254 70 133/var(--tw-text-opacity))}.text-\[\#ac39ff\]{--tw-text-opacity:1;color:rgb(172 57 255/var(--tw-text-opacity))}.text-\[\#b64400\]{--tw-text-opacity:1;color:rgb(182 68 0/var(--tw-text-opacity))}.text-\[\#f5f5f7\]{--tw-text-opacity:1;color:rgb(245 245 247/var(--tw-text-opacity))}.text-\[\#ffffff\]{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-cgrey{color:var(--secondary-color)}.text-footer-text-color{color:var(--footer-text-color)}.text-invert-secondary{color:var(--invert-secondary)}.text-menu-color{color:var(--menu-color)}.text-menu-color-light{color:var(--menu-color-light)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-80{opacity:.8}.shadow-\[0px_-10px_40px_1px_rgba\(0\2c 0\2c 0\2c 0\.75\)\]{--tw-shadow:0px -10px 40px 1px rgba(0,0,0,.75);--tw-shadow-colored:0px -10px 40px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[2px_4px_12px_\#00000014\]{--tw-shadow:2px 4px 12px #00000014;--tw-shadow-colored:2px 4px 12px var(--tw-shadow-color)}.shadow-\[2px_4px_12px_\#00000014\],.shadow-\[2px_4px_12px_\#0071e314\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[2px_4px_12px_\#0071e314\]{--tw-shadow:2px 4px 12px #0071e314;--tw-shadow-colored:2px 4px 12px var(--tw-shadow-color)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }:root{font-size:62.5%;--max-width:1100px;--border-radius:12px;--font-mono:ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",monospace;--primary-color:#1d1d1f;--primary-bg:#f5f5f7;--secondary-color:#6e6e73;--invert-primary:#fff;--invert-secondary:#000;--nav-bg:#f5f5f7;--nav-bg-invert:#454545;--menu-backdrop-bg:#e8e8ed66;--menu-bg:#f5f5f7;--menu-color:#333336;--menu-color-light:#6e6e73;--project-card-bg:#fff;--footer-text-color:#6e6e73;--blog-border-color:#e4e4e7}.dark{--primary-color:#e2e2e0;--primary-bg:#0a0a08;--secondary-color:#a0a09a;--invert-primary:#000;--invert-secondary:#fff;--nav-bg:#454545;--nav-bg-invert:#f5f5f7;--menu-backdrop-bg:#2c2b2b66;--menu-bg:#161617;--menu-color:#e8e8ed;--menu-color-light:#86868b;--project-card-bg:#1d1d1f;--footer-text-color:#ffffffa4;--blog-border-color:#303030}*{box-sizing:border-box;padding:0;margin:0;scroll-behavior:smooth}body,html{max-width:100vw;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body{font-size:1.6rem;color:var(--primary-color);background-color:var(--primary-bg);transition:background-color .3s,color .3s}li{list-style:none}a{color:inherit;text-decoration:none}.hover\:bg-\[\#dedee3\]:hover{--tw-bg-opacity:1;background-color:rgb(222 222 227/var(--tw-bg-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[2px_4px_16px_\#00000029\]:hover{--tw-shadow:2px 4px 16px #00000029;--tw-shadow-colored:2px 4px 16px var(--tw-shadow-color)}.hover\:shadow-\[2px_4px_16px_\#00000029\]:hover,.hover\:shadow-\[2px_4px_16px_\#0071e324\]:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[2px_4px_16px_\#0071e324\]:hover{--tw-shadow:2px 4px 16px #0071e324;--tw-shadow-colored:2px 4px 16px var(--tw-shadow-color)}@media (max-width:1279px){.xl\:mx-28{margin-left:7rem;margin-right:7rem}.xl\:min-w-28{min-width:7rem}.xl\:px-28{padding-left:7rem;padding-right:7rem}}@media (max-width:1023px){.lg\:mx-14{margin-left:3.5rem;margin-right:3.5rem}.lg\:mx-28{margin-left:7rem;margin-right:7rem}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-full{width:100%}.lg\:min-w-14{min-width:3.5rem}.lg\:justify-between{justify-content:space-between}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:px-14{padding-left:3.5rem;padding-right:3.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pb-14{padding-bottom:3.5rem}}@media (max-width:767px){.md\:mx-14{margin-left:3.5rem;margin-right:3.5rem}.md\:mb-24{margin-bottom:6rem}.md\:text-\[3\.8rem\]{font-size:3.8rem}.md\:leading-\[4\.3rem\]{line-height:4.3rem}}@media (max-width:639px){.sm\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.sm\:mr-12{margin-right:3rem}.sm\:h-\[45rem\]{height:45rem}.sm\:min-w-7{min-width:1.75rem}.sm\:min-w-\[35rem\]{min-width:35rem}.sm\:gap-10{gap:2.5rem}.sm\:px-7{padding-left:1.75rem;padding-right:1.75rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:pt-20{padding-top:5rem}.sm\:pt-\[0\.5rem\]{padding-top:.5rem}.sm\:text-\[0\.9rem\]{font-size:.9rem}.sm\:text-\[1\.2rem\]{font-size:1.2rem}.sm\:text-\[1rem\]{font-size:1rem}.sm\:text-\[2\.1rem\]{font-size:2.1rem}.sm\:text-\[2\.4rem\]{font-size:2.4rem}.sm\:text-\[3rem\]{font-size:3rem}.sm\:leading-\[3\.7rem\]{line-height:3.7rem}.sm\:last\:hidden:last-child{display:none}}.custom-transform{transition:all .3s cubic-bezier(0,0,.5,1)}.custom-transform:hover{transform:scale3d(1.01,1.01,1.01)}@keyframes animate-background{0%{background-color:#0071e3;color:#fff}}@keyframes animate-background-dark{0%{background-color:#0071e3;color:#fff}}.dark .ribbon{animation:animate-background-dark 1s ease-in-out 1.8s forwards}.dark .ribbon,.ribbon{background-color:#0071e3;color:#fff}.ribbon{animation:animate-background 1s ease-in-out 1.8s forwards}@keyframes ribbon-drop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.ribbon-drop-wrapper{animation:ribbon-drop .8s ease-in-out forwards}.project-svg-cont svg{width:12px;height:12px}.custom-color{background-image:linear-gradient(90deg,#f8ab5e 0,#f36961 20%,#a176c8 40%,#759beb 60%,#65beb3 80%,#70db96);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}::-webkit-scrollbar{width:0;background:transparent}.left-scroll-btn{transition:transform .5s ease-in,opacity .7s cubic-bezier(.15,0,.2,1) .1s}.left-scroll-btn button:hover{transition:.3s ease-in-out}.nav-menu-backdrop{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.nav-menu-backdrop-open{transition:opacity .32s cubic-bezier(.4,0,.6,1) 80ms,visibility .32s step-start 80ms}.nav-menu-backdrop-end{transition:opacity .32s cubic-bezier(.4,0,.6,1) 80ms,visibility .32s step-end 80ms}.nav-menu{transition:all .24s cubic-bezier(.4,0,.6,1)}.li-text{transform:translateY(-4px);transition-property:opacity,transform;transition-duration:.24s;transition-delay:0s}.li-text-open{transform:translateY(0);transition-duration:.32s;transition-delay:.12s}.link-text{transition:color .32s cubic-bezier(.4,0,.6,1)}button{cursor:pointer}.bg-blur{background-color:hsla(0,0%,100%,.7)}.bg-blur,.dark .bg-blur{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.dark .bg-blur{background-color:rgba(29,29,31,.7)}.blog h1{font-size:4.8rem;font-weight:700;color:#1d1d1f;text-align:center}.blog p{font-size:1.7rem;color:#1d1d1f}.blog-share button{border:none;background-color:transparent;padding-right:16px}@media screen and (max-width:639px){.blog-share button{padding:0 8px}}.blog-share button svg{width:18px;height:18px;fill:#6e6e73}.dark .blog-share button svg{fill:#a0a09a}.border-bottom{border-bottom:1px solid #d0d0d0}.hgl{background-color:#bde3e4;padding:0 .5rem}.dark .hgl{background-color:#f4e156;color:#000}.tag{color:red;font-weight:600;background-color:#fff;border-radius:4px;padding:0 .5rem;font-size:15px}.dark .tag{color:#00ffae;background-color:#373739}.article-container a{color:blue;text-decoration:underline}.dark .article-container a{color:#0eb825}.wave{animation-name:wave-animation;animation-duration:3s;animation-iteration-count:2;transform-origin:70% 70%;display:inline-block}@keyframes wave-animation{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}to{transform:rotate(0deg)}}