.project-filters[data-v-ae243eb0]{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter-dropdown summary[data-v-ae243eb0]{cursor:pointer;-webkit-user-select:none;user-select:none}.filter-options[data-v-ae243eb0]{gap:6px;min-width:170px;margin-top:8px;display:grid}.filter-option[data-v-ae243eb0]{align-items:center;gap:8px;font-size:.9rem;display:flex}.filter-year[data-v-ae243eb0]{align-items:center;gap:8px;display:inline-flex}.project-grid[data-v-ae243eb0]{position:relative}.view[data-v-ae243eb0]{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#4443;border-color:#ccc;border-radius:50%;place-items:center;width:60px;height:60px;font-size:12px;transition:transform .4s,opacity .3s ease-in;display:grid;position:absolute;transform:translate(-50%,-50%)scale(0)}.project-grid:hover .view[data-v-ae243eb0]{opacity:1;transform:translate(-50%,-50%)scale(1)}.block-cta[data-v-5915086c]{position:relative;overflow:hidden}.hello[data-v-5915086c]{opacity:.05;width:100%;overflow:hidden}.hello-track[data-v-5915086c]{width:max-content;animation:22s linear infinite marquee-5915086c;display:flex}.hello-group[data-v-5915086c]{white-space:nowrap;flex-shrink:0;gap:3.5rem;padding-right:3.5rem;display:flex}.hello-group b[data-v-5915086c]{font-size:80px;line-height:1}@keyframes marquee-5915086c{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.hello-track[data-v-5915086c]{animation:none}}.block-shader[data-v-b0c21712],.block-shader .shader[data-v-b0c21712],.block-shader canvas[data-v-b0c21712]{width:100%;height:100%;position:absolute;top:0;left:0}.shader-fade-enter-active[data-v-b0c21712]{transition:opacity 1.2s}.shader-fade-enter-from[data-v-b0c21712]{opacity:0}.breadcrumb[data-v-9fabcfec]{padding-bottom:12px;padding-left:12px;list-style:none;display:flex}.breadcrumb-item[data-v-9fabcfec]{align-items:center;display:flex}.breadcrumb-item+.breadcrumb-item[data-v-9fabcfec]:before{content:"/";color:#9b9797;padding:0 .5rem}.breadcrumb-item a[data-v-9fabcfec]{color:#fff;text-decoration:none}.breadcrumb-item a[data-v-9fabcfec]:hover{text-decoration:underline}.breadcrumb-item[data-v-9fabcfec]:last-child{color:#9b9797}.shader-fade-enter-active[data-v-37bf82dd]{transition:opacity 1.2s}.shader-fade-enter-from[data-v-37bf82dd]{opacity:0}.block-shader[data-v-37bf82dd],.block-shader .shader[data-v-37bf82dd],.block-shader canvas[data-v-37bf82dd]{width:100%;height:100%;position:absolute;top:0;left:0}.block-banner[data-v-37bf82dd]{z-index:2;position:relative}.container[data-v-d21424c5]{padding:40px 30px}.block-banner-wrapper[data-v-d21424c5]{position:relative}.shader-fade-enter-active[data-v-d21424c5]{transition:opacity 1.2s}.shader-fade-enter-from[data-v-d21424c5]{opacity:0}.block-shader[data-v-d21424c5],.block-shader .shader[data-v-d21424c5],.block-shader canvas[data-v-d21424c5]{width:100%;height:100%;position:absolute;top:0;left:0}.block-banner[data-v-d21424c5]{z-index:2;position:relative}.shader-fade-enter-active[data-v-0ea239d8]{transition:opacity 1.2s}.shader-fade-enter-from[data-v-0ea239d8]{opacity:0}.block-shader[data-v-0ea239d8],.block-shader .shader[data-v-0ea239d8],.block-shader canvas[data-v-0ea239d8]{width:100%;height:100%;position:absolute;top:0;left:0}.block-banner[data-v-0ea239d8]{z-index:2;position:relative}.block-notfound[data-v-ac8d8c23]{text-align:center}.project-badges[data-v-facd0d0a]{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.project-badges[data-v-facd0d0a] .skill-icon{background:#101015;border:1px solid #1f1f28;border-radius:8px;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}.project-badges[data-v-facd0d0a] .skill{background:#fff;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;padding:8px;display:flex}.project-badges[data-v-facd0d0a] .skill img{max-width:100%;max-height:100%}.project-badges[data-v-facd0d0a] span{text-transform:uppercase;font-size:11px}.project-features[data-v-facd0d0a]{border-bottom:1px solid #383838;margin:30px 0;padding-bottom:20px;padding-left:0;list-style-type:none}.project-features li[data-v-facd0d0a]{border-top:1px solid #383838;margin-top:20px;padding-top:20px}.project-links[data-v-facd0d0a]{flex-wrap:wrap;gap:12px;display:flex}html *{box-sizing:border-box}html,html body{font-optical-sizing:auto;color:#fff;background:#101010;margin:0;padding:0;font-family:Geist,sans-serif;font-size:15px;font-style:normal;font-weight:400}html .text-mono{font-family:Geist,sans-serif}html .header-wrapper{z-index:100;width:100%;position:absolute;top:0}html .app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%;max-width:1600px;margin:30px auto;padding:12px 30px;display:flex}html .app-header .brand{flex-wrap:wrap;align-items:center;padding-right:1rem;display:inline-flex}html .app-header .brand .app-title{color:#fff;text-decoration:none}html .app-header .brand p{margin:0;font-size:15px;font-weight:600}html .app-header .brand p:nth-of-type(2){opacity:.75;font-size:13px}html .app-header nav ul{--nav-dot-left:0px;--nav-dot-opacity:0;justify-self:center;align-items:center;list-style-type:none;display:flex;position:relative}html .app-header nav ul:after{content:"";width:4px;height:4px;transform:translateX(var(--nav-dot-left));opacity:var(--nav-dot-opacity);pointer-events:none;background:#fff;border-radius:50%;transition:transform .22s,opacity .2s;position:absolute;bottom:-10px;left:0}html .app-header nav ul li{padding:0 24px}html .app-header nav ul li a{color:#fff;font-weight:400;text-decoration:none}html .container-medium,html .container-small,html .container{width:100%;max-width:1300px;margin:auto;padding:0 30px}html .container-medium{max-width:1100px}html .container-small{max-width:800px}html .block-spacing{padding:60px 0}html .text-center{text-align:center}html .button{color:#000;background:#fff;border:1px solid #fff;border-radius:25px;outline:0;padding:14px 26px 14px 32px;font-size:14px;text-decoration:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:inline-block;position:relative;overflow:hidden}html .button.is-alt{color:#fff;background:#fff3;border-color:#ccc}html .button.is-alt:before{background:#fff}html .button.is-alt:hover{border:1px solid #fff;color:#000!important}html .button+.button{margin-left:12px}html .button:before{content:"";background:#000;border-radius:50%;width:4px;height:4px;transition:all 1.3s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:18px;transform:translateY(-50%)}html .button:hover{color:#fff;border:1px solid #000}html .button:hover:before{transform:scale(66)}html .dropdown{cursor:pointer;align-items:center;display:inline-flex;position:relative}html .dropdown>span{opacity:.75}html .dropdown .items{opacity:0;pointer-events:none;z-index:1;color:#363636;background:#fff;width:auto;margin-top:1rem;padding:1rem;transition:all .3s;position:absolute;top:100%;left:0;transform:translateY(12px)}html .dropdown.on .items{opacity:1;pointer-events:all;transform:translateY(0)}html input[type=radio],html input[type=checkbox]{appearance:none;border:1px solid #363636;flex-shrink:0;width:20px;height:20px;display:block}html input[type=radio]:checked,html input[type=checkbox]:checked{background:#363636;box-shadow:inset 0 0 0 3px #fff}html h2{font-size:30px;font-weight:400}html h5,html .h5{opacity:.75;font-size:22px;line-height:1.5}html .block-banner-wrapper{position:relative;overflow:hidden}html .block-banner-wrapper .block-banner{max-width:800px;margin:auto;padding-top:320px;padding-bottom:100px}html .block-banner-wrapper .block-banner h1{margin:0;font-size:76px;font-weight:300}html .block-banner-wrapper .block-banner p{opacity:.75;margin:24px auto 40px;font-size:22px;line-height:1.5}html .block-projects>img{z-index:1;width:100%;position:relative}html .projects-filters{padding:40px 0}html .project-grid{position:relative}html .project-grid .projects-list{border-top:1px solid #363636;margin-top:0;padding:0;list-style-type:none;position:relative}html .project-grid .projects-list li{border-bottom:1px solid #363636;padding:0}html .project-grid .projects-list li .list-content,html .project-grid .projects-list li a{color:#fff;justify-content:space-between;align-items:center;padding:40px 0;font-size:22px;text-decoration:none;transition:all .3s;display:flex}html .project-grid .projects-list li .list-content span,html .project-grid .projects-list li a span{transition:all .3s;display:block}html .project-grid .projects-list li .list-content small,html .project-grid .projects-list li a small{opacity:.75;font-size:12px}html .project-grid .projects-list li .list-content .badge,html .project-grid .projects-list li a .badge{background:#fff;border-radius:50%;flex-shrink:0;width:40px;height:40px;position:relative}html .project-grid .projects-list li .list-content .badge img,html .project-grid .projects-list li a .badge img{width:28px;max-width:100%;height:auto;max-height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}html .project-grid .projects-list li .list-content:hover,html .project-grid .projects-list li a:hover{opacity:.25}html .project-grid .projects-list li .list-content:hover>span,html .project-grid .projects-list li a:hover>span{transform:translate(8px)}html .project-grid .project-preview{opacity:0;pointer-events:none;will-change:left, top, transform, opacity;background:#ffffff65;border-radius:12px;width:460px;height:280px;transition:opacity .3s,transform .3s;position:absolute;top:0;left:0;overflow:hidden;transform:translate(-50%,-50%)scale(0)}html .project-grid .project-preview img{border-radius:12px;width:calc(100% - 40px);position:absolute;top:20px;left:20px}html .project-grid:hover .project-preview{opacity:1;transform:translate(-50%,-50%)scale(1)}html .block-skills{background:#000 linear-gradient(360deg,#1a1a1a 0%,#000 74%);position:relative;overflow:hidden}html .block-skills>img{width:200%;position:absolute;bottom:0;left:-50%;transform:rotate(-360deg)}html .block-skills .container-small,html .block-skills .container-medium{position:relative}html .block-skills .skills{flex-wrap:wrap;display:flex}html .block-skills .skills .skill-set{width:25%;padding:25px}html .block-skills .skills .skill-set .skill-set-name{margin:18px 4px}html .block-skills .skills .skill-icons{flex-wrap:wrap;display:flex}html .block-skills .skills .skill-icons .skill-icon{text-transform:uppercase;letter-spacing:.5px;background:#101010;border-radius:4px;align-items:center;gap:12px;width:100%;margin:4px;font-size:12px;display:flex}html .block-skills .skills .skill-icons .skill{background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;margin:4px;padding:10px;display:flex}html .block-skills .skills .skill-icons .skill img{width:100%}html .experiences-list{margin:0;padding:0;list-style-type:none;position:relative;overflow:hidden}html .experiences-list:before{content:"";background:#363636;width:2px;height:90%;position:absolute;top:30px;left:20px}html .experiences-list li{padding:20px 0 20px 80px;display:block;position:relative}html .experiences-list li img{border-radius:50%;width:40px;position:absolute;top:30px;left:0}html .block-cta{text-align:center;background:linear-gradient(90deg,#e2e2e2,#dbe2f7);padding:30px 0 60px}html .block-cta .cta-content{flex-wrap:wrap;align-items:center;display:flex}html .block-cta .cta-content .text{color:#101010;width:100%}html .block-cta .cta-content .text .h1{margin:0 0 30px;font-size:36px;font-weight:400}html .meta-items .content,html footer .content{flex-wrap:wrap;justify-content:space-between;align-items:end;display:flex}html .meta-items .content .l,html .meta-items .content .r,html footer .content .l,html footer .content .r{flex-wrap:wrap;gap:20px;width:50%;display:flex}html .meta-items .content .r,html footer .content .r{text-align:right;justify-content:end}html .meta-items .content .meta>span,html footer .content .meta>span{color:#6e6b6b;padding-bottom:12px;display:block}html .meta-items .content .meta,html .meta-items .content .meta a,html footer .content .meta,html footer .content .meta a{color:#fff;font-size:13px;font-weight:400;text-decoration:none}html .meta-items .content .meta .links,html footer .content .meta .links{justify-content:end;gap:12px;display:flex}html .project-preview{flex-wrap:wrap;display:flex}html .project-preview .sticky-content,html .project-preview .img-wrapper{width:50%}html .project-preview .img-wrapper{background:linear-gradient(90deg,#e2e2e2,#dbe2f7)}html .project-preview .img-wrapper img{border-top-left-radius:32px;border-top-right-radius:32px;width:calc(100% - 60px);max-width:600px;margin:120px auto;display:block}html .project-preview .sticky-content .text{width:calc(100% - 60px);max-width:600px;margin:120px auto;position:sticky;top:80px}html .project-preview .sticky-content .text .h5{margin:30px 0}html .form-input{border-top:1px solid #363636;padding:30px 0 30px 30px;position:relative;overflow:hidden}html .form-input span{opacity:.25;font-size:12px;position:absolute;top:32px;left:0}html .form-input label{width:100%;font-size:22px;line-height:1.5;display:block}html .form-input textarea,html .form-input input{appearance:none;color:#c7c7c7;background:0 0;border:0;outline:0;width:100%;margin:0;padding:12px 0 0;font-family:Inter,sans-serif;font-size:16px;display:block}.line-mask{display:block;overflow:hidden}.line-inner{transition:transform 1s cubic-bezier(.16,1,.3,1);display:block;transform:translateY(110%)}.is-revealed>.line-mask>.line-inner{transform:translateY(0)}.page-fade-up-view{animation:1.35s both page-fade-up-in}@keyframes page-fade-up-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.app-shell:not(.project-slug-viewing){overflow:hidden}.page-fade-enter-active{transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.16,1,.3,1)}.page-fade-leave-active{transition:opacity .35s cubic-bezier(.4,0,1,1),transform .35s cubic-bezier(.4,0,1,1)}.page-fade-enter-from{opacity:0;transform:translateY(12px)}.page-fade-leave-to{opacity:0;transform:translateY(-6px)}.page-transition-wrapper{z-index:1;width:100%;position:relative}sup{vertical-align:middle;display:inline-block;transform:translateY(-8px)}.badge{color:#eee;padding-left:26px;font-family:Geist mono,sans-serif;font-size:12px;display:inline-block;position:relative}.badge:before{content:"";background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.badge+h1{margin-top:20px!important}.mob-menu{pointer-events:none;z-index:100;background:#fff3;border-color:#ccc;border-radius:50%;width:36px;height:36px;display:none;position:absolute;right:36px}.home-link{display:none}.cta-link{background:#ffffff4a;border:1px solid #cdcdcd;border-radius:25px;padding:6px 14px;font-size:88%}@media screen and (width<=1000px){.home-link{display:inline-block}.cta-link{background:0 0;border:none;padding:0}.app-header{padding:0 36px!important}.app-header nav{-webkit-backdrop-filter:blur(215px);backdrop-filter:blur(215px);z-index:99;opacity:0;pointer-events:none;background:#1b1b1b;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0;transform:translateY(-10px)}.app-header nav ul{flex-wrap:wrap;justify-content:center;align-items:center;width:100%;height:auto;margin:0!important;padding:0!important;display:flex!important}.app-header nav ul:after{display:none}.app-header nav ul li{text-align:center;width:100%;padding:20px 0!important}.app-header nav ul li a{font-size:30px;font-weight:400!important}.app-header .mob-menu{pointer-events:all;display:block}.app-header .mob-menu i{background:#fff;width:20px;height:2px;transition:transform .25s,top .25s,bottom .25s;display:block;position:absolute;left:50%;transform:translate(-50%)}.app-header .mob-menu i:first-of-type{top:13px}.app-header .mob-menu i:nth-of-type(2){bottom:13px}.app-header.on nav{opacity:1;pointer-events:all;transform:translateY(0)}.app-header.on .mob-menu i:first-of-type{top:17px;transform:translate(-50%)rotate(45deg)}.app-header.on .mob-menu i:nth-of-type(2){bottom:17px;transform:translate(-50%)rotate(-45deg)}.breadcrumb{padding-left:0!important}.container-small,.container-medium,.container,.block-banner{padding-left:36px!important;padding-right:36px!important}.block-spacing{padding-top:30px!important;padding-bottom:30px!important}.block-banner{padding-top:200px!important;padding-bottom:60px!important}.block-banner h1{font-size:40px!important}.skill-set{width:100%!important;padding:0!important}.experiences-list li{padding-left:60px!important}html .project-preview .sticky-content,html .project-preview .img-wrapper{width:100%}html .project-preview .sticky-content .text{margin-top:60px;margin-bottom:0}html .project-preview .img-wrapper{max-height:300px;overflow:auto}html .project-preview .img-wrapper img{border-top-left-radius:12px;border-top-right-radius:12px;margin:30px auto}.block-skills>.container-small:first-of-type,.block-portfolio>.container-small:first-of-type{padding-bottom:10px!important}html .meta-items .content .l,html .meta-items .content .r,html footer .content .l,html footer .content .r,html .meta-items .content .l .meta,html .meta-items .content .r .meta,html footer .content .l .meta,html footer .content .r .meta{width:100%}html .meta-items .content .l .meta .links,html .meta-items .content .r .meta .links,html footer .content .l .meta .links,html footer .content .r .meta .links{justify-content:start}html .meta-items .content .r,html footer .content .r{text-align:left;justify-content:start;padding-top:30px}.preview-follower{display:none!important}.button{padding-left:26px!important;padding-right:21px!important;font-size:13px!important}.button:before{left:12px!important}}
