.animation__fade-in-from-top{animation:fadeInFromTop .5s cubic-bezier(.215,.61,.355,1) forwards;opacity:0;transform:translateY(-10px)}.animation__fade-in-from-bottom{animation:fadeInFromBottom .5s cubic-bezier(.215,.61,.355,1) forwards;opacity:0;transform:translateY(10px)}.animation__fade-in-from-right{animation:fadeInFromRight .5s cubic-bezier(.215,.61,.355,1) forwards;opacity:0;transform:translateX(10px)}.animation--delay-long{animation-delay:.8s}.animation--delay-longer{animation-delay:1.1s}.animation--delay-longest{animation-delay:1.4s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInFromBottom{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInFromLeft{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInFromRight{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.frow-container{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:100vw;width:100%}@media (min-width:1514px){.frow-container{max-width:1514px}}.hidden-sm,.hidden-xs,.hidden-xxs,.hidden-xxxs{display:revert}.frow.hidden-sm,.frow.hidden-xs,.frow.hidden-xxs,.frow.hidden-xxxs{display:flex!important}@media (max-width:359px){.frow.hidden-xxxs,.hidden-xxxs{display:none!important}}@media (min-width:360px) and (max-width:579px){.frow.hidden-xxs,.hidden-xxs{display:none!important}}@media (min-width:580px) and (max-width:767px){.frow.hidden-xs,.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.frow.hidden-sm,.hidden-sm{display:none!important}}@media (min-width:0px){.mr-xxxs-12{margin-right:12px!important}.mr-xxxs-16{margin-right:16px!important}.mb-xxxs-16{margin-bottom:16px!important}.mb-xxxs-20{margin-bottom:20px!important}.mb-xxxs-24{margin-bottom:24px!important}.mb-xxxs-32{margin-bottom:32px!important}.mb-xxxs-40{margin-bottom:40px!important}.mb-xxxs-80{margin-bottom:80px!important}.mb-xxxs-160{margin-bottom:160px!important}.ml-xxxs-20{margin-left:20px!important}}@media (min-width:768px){.mr-sm-20{margin-right:20px!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-40{margin-bottom:40px!important}.mb-sm-80{margin-bottom:80px!important}}@media (min-width:992px){.mb-md-0{margin-bottom:0!important}.mb-md-32{margin-bottom:32px!important}.mb-md-80{margin-bottom:80px!important}.mb-md-120{margin-bottom:120px!important}}@media (min-width:0px){.p-xxxs-40{padding:40px!important}.px-xxxs-16{padding-left:16px!important;padding-right:16px!important}.px-xxxs-32{padding-left:32px!important;padding-right:32px!important}.py-xxxs-4{padding-bottom:4px!important;padding-top:4px!important}.py-xxxs-12{padding-bottom:12px!important;padding-top:12px!important}.py-xxxs-40{padding-bottom:40px!important}.pt-xxxs-40,.py-xxxs-40{padding-top:40px!important}.pr-xxxs-16{padding-right:16px!important}.pb-xxxs-40{padding-bottom:40px!important}.pb-xxxs-80{padding-bottom:80px!important}.pb-xxxs-120{padding-bottom:120px!important}}@media (min-width:768px){.px-sm-16{padding-left:16px!important;padding-right:16px!important}.py-sm-80{padding-bottom:80px!important}.pt-sm-80,.py-sm-80{padding-top:80px!important}.pr-sm-24{padding-right:24px!important}}@media (min-width:992px){.p-md-80{padding:80px!important}.px-md-120{padding-left:120px!important;padding-right:120px!important}.py-md-80{padding-top:80px!important}.pb-md-80,.py-md-80{padding-bottom:80px!important}.pb-md-100{padding-bottom:100px!important}.pb-md-120{padding-bottom:120px!important}.pb-md-160{padding-bottom:160px!important}}@media (min-width:0px){.g-xxxs-8{gap:8px!important}.g-xxxs-12{gap:12px!important}.g-xxxs-20{gap:20px!important}.g-xxxs-24{gap:24px!important}.g-xxxs-28{gap:28px!important}.g-xxxs-32{gap:32px!important}.g-xxxs-40{gap:40px!important}}@media (min-width:580px){.g-xs-32{gap:32px!important}}@media (min-width:992px){.g-md-0{gap:0!important}.g-md-32{gap:32px!important}.g-md-80{gap:80px!important}}.width-100{width:100%!important}.height-100{height:100%!important}.height-100vh{height:100vh!important;margin-top:-100px}@media (min-width:992px){.height-100vh{height:100vh!important}}@media (min-width:0px){.xxxs-text-left{text-align:left!important}.xxxs-text-center{text-align:center!important}}@media (min-width:360px){.xxs-text-center{text-align:center!important}}@media (min-width:768px){.sm-text-left{text-align:left!important}.sm-text-right{text-align:right!important}}@media (min-width:992px){.md-text-left{text-align:left!important}}.long-form h2,.long-form h3{margin-bottom:40px}.long-form .work__full-image{border-radius:8px;display:flex;justify-content:center;max-width:100%;overflow:hidden;position:relative;width:100%}.long-form .work__full-image>img{height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%}.long-form .work__full-image--no-radius{border-radius:0!important}.long-form p,.long-form ul{margin-bottom:20px}.long-form li{margin-bottom:16px}@media (min-width:768px){.long-form h2,.long-form h3{margin-bottom:40px}.long-form .work__full-image{border-radius:8px}.long-form li{margin-bottom:20px}}.just-for-fun__grid{grid-gap:48px;display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.just-for-fun__example{aspect-ratio:1/1;grid-column:span 2;overflow:hidden;position:relative;width:100%}.just-for-fun__example-image{border-radius:8px;height:100%;width:100%}.just-for-fun__example-image img{height:100%;-o-object-fit:cover;object-fit:cover;transform:scale(1);transition:transform .3s cubic-bezier(.215,.61,.355,1);width:100%}@media (min-width:768px){.just-for-fun__example{grid-column:span 1}.just-for-fun__example--wide{aspect-ratio:2/1;grid-column:span 2}}.availability-message{background:#edf5e9;border-radius:12px;color:#1f1f1f;transition:background .8s cubic-bezier(.285,-.005,0,1.01)}.availability-message__link{color:inherit}.availability-message__icon{fill:#eca52d;animation:handwave .5s cubic-bezier(.65,0,.35,1) 1s alternate;animation-iteration-count:4;transform:rotate(0);transform-origin:center center}@keyframes handwave{0%{transform:rotate(0)}to{transform:rotate(30deg)}}@media (min-width:768px){.availability-message{border-radius:40px}}.decal{fill:#1f1f1f;height:84px}html.dark body .decal{fill:#faf3f0}@media (min-width:992px){.decal{height:140px}}.logo{fill:#1f1f1f;transition:fill .8s cubic-bezier(.215,.61,.355,1)}html.dark body .logo{fill:#fff}.inline-arrow{fill:inherit;height:10px;overflow:visible;transition:fill .8s cubic-bezier(.215,.61,.355,1);width:10px}@media (min-width:992px){.inline-arrow{height:14px;width:14px}}.icon,.theme-switch{fill:inherit}.icon,.inline-icon{display:block}.inline-icon{fill:currentColor}@keyframes dash{to{stroke-dashoffset:0}}.decal{display:block}.decal--animated{animation:spin 40s linear infinite;transform:rotate(0)}.decal--circle{fill:#df6c30;height:54px;width:54px}.decal--star{fill:#0e0e0e;height:54px;width:54px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse-animation{0%{box-shadow:0 0 0 0 rgba(66,101,206,.2)}to{box-shadow:0 0 0 20px rgba(66,101,206,0)}}.cv-footer-clients{fill:currentColor;width:100%}.work__tag{background:#f0f0f0;border-radius:8px;color:#0e0e0e;display:flex;flex-direction:row;font-size:clamp(14px,1vw + 8px,16px);font-variation-settings:"wght" 600;justify-content:center;letter-spacing:0;line-height:1.4em;line-height:1em;padding:12px 24px}html.dark body .work__tag{background:#1f1f1f;color:#fff}.work__footer{margin-bottom:40px}@media (min-width:992px){.work__tag{font-size:clamp(16px,1vw + 10px,18px);letter-spacing:0;line-height:1.4em;padding:8px 28px}}.cv_work-grid{grid-column-gap:24px;display:grid;grid-auto-flow:row;grid-auto-rows:minmax(280px,1fr);grid-template-rows:repeat(auto-fill,minmax(280px,1fr));justify-content:flex-start}.cv_work-block{background:#f0f0f0;border-radius:8px;box-shadow:0 4px 8px 0 rgba(0,0,0,.1);color:#0e0e0e;cursor:not-allowed;display:flex;flex-direction:column;height:240px;justify-content:space-between;padding:24px;transform:scale(1) translateY(0) translateX(0) translateZ(0) rotate(0);transition:transform .3s cubic-bezier(.215,.61,.355,1),opacity .3s cubic-bezier(.215,.61,.355,1),box-shadow .3s cubic-bezier(.215,.61,.355,1)!important}.cv_work-block,.cv_work-block:hover{text-decoration:none}.cv_work-block--is-link{background:#fafafa;cursor:pointer}.cv_work-block--is-link:hover{box-shadow:.3px .5px .7px rgba(0,0,0,.1),1.5px 2.9px 3.7px -.4px rgba(0,0,0,.1),2.7px 5.4px 6.8px -.7px rgba(0,0,0,.1),4.5px 8.9px 11.2px -1.1px rgba(0,0,0,.1),7.1px 14.3px 18px -1.4px rgba(0,0,0,.1),11.2px 22.3px 28.1px -1.8px rgba(0,0,0,.1),17px 33.9px 42.7px -2.1px rgba(0,0,0,.1),25px 50px 62.9px -2.5px rgba(0,0,0,.1);transform:scale(1.05) translateY(-20px) translateX(0) rotate(0)!important;transition:transform .3s cubic-bezier(.215,.61,.355,1),box-shadow .3s cubic-bezier(.215,.61,.355,1)!important;transition-delay:0!important}.cv_work-block--is-link:hover .cv_work-arrow{transform:rotate(-45deg)}.cv_work-type{align-items:center;display:inline-flex}.cv_work-type-dot{border-radius:50%;display:inline;height:14px;margin-right:8px;width:14px}.cv_work-block-footer{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.cv_work-block-logo{border-radius:20px;height:68px;overflow:hidden;width:68px}.cv_work-block-logo img{width:100%}.cv_work-block-title-wrapper{display:flex;flex-direction:column;gap:20px}.cv_work-block-title{fill:#0e0e0e;color:#0e0e0e;font-size:20px;letter-spacing:0;line-height:1.8em;line-height:1.6em!important}@media screen and (min-width:768px){.cv_work-block-title{font-size:clamp(20px,1vw + 19px,24px);letter-spacing:0;line-height:1.8em}}.cv_work-company,.cv_work-role{font-size:clamp(14px,1vw + 8px,16px);letter-spacing:0;line-height:1.4em;line-height:1.6em}.cv_work-role{color:#0e0e0e}.cv_work-company{color:#616161}.cv_work-type-dot--current{background:#5b8840}.cv_work-type-dot--wip{background:#d15625}.cv_work-type-dot--old{background:#969696}.cv_work-arrow{fill:currentColor;display:none;margin-left:8px;transform:rotate(0);transition:transform .3s cubic-bezier(.215,.61,.355,1)}.cv_work-block--is-link .cv_work-arrow{display:inline-block}@media (min-width:580px){.cv_work-grid{grid-auto-columns:unset;grid-auto-flow:row;grid-auto-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}}@media (min-width:768px){.cv_work-grid{grid-column-gap:32px;grid-row-gap:32px;grid-template-columns:repeat(3,minmax(0,1fr))}.cv_work-block{height:440px}}@media (min-width:992px){.cv_work-grid{grid-column-gap:48px;grid-row-gap:48px;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.cv_work-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.about-hero-image{border-radius:8px}.about-how-i-work-grid{grid-column-gap:52px;grid-row-gap:52px;display:grid;grid-auto-flow:row;grid-auto-rows:1fr;grid-template-columns:repeat(1,minmax(0,1fr))}.about-kind-word{box-shadow:0 0 0 1px currentColor}@media (min-width:768px){.about-how-i-work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-hero-image{border-radius:8px}.featured-projects-grid{grid-row-gap:48px;display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.featured-project{aspect-ratio:1/1;grid-column:span 2;position:relative;width:100%}.featured-project:hover{text-decoration:none}.featured-project--disabled{cursor:not-allowed}.featured-project--disabled img{filter:grayscale(100%)}.featured-project-image{aspect-ratio:1/1;border-radius:8px;width:100%}.featured-project-image img{transform:scale(1);transition:transform .3s cubic-bezier(.215,.61,.355,1),filter .3s cubic-bezier(.215,.61,.355,1);width:100%}.featured-project-footer{bottom:0;display:flex;flex-direction:column;padding:20px 0;width:100%}@media (min-width:768px){.featured-projects-grid{grid-column-gap:48px;grid-row-gap:48px}.featured-project{grid-column:span 1}.featured-project--full-width{aspect-ratio:2/1;grid-column:span 2}.featured-project--full-width .featured-project-image{aspect-ratio:16/9}}@media (min-width:992px){.featured-project--disabled img{filter:none}.featured-project:hover img{transform:scale(1.025)}.featured-project--disabled:hover img{filter:grayscale(100%);transform:scale(1.025)}}@media (min-width:1280px){.featured-project-footer{padding:32px 0}}
