*:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert}*,*::before,*::after{box-sizing:border-box}a,button{cursor:revert}ol,ul,menu{list-style:none}img{max-width:100%}table{border-collapse:collapse}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}:where([draggable=true]){-webkit-user-drag:element}@font-face{font-family:"Suisse Intl";src:url(/fonts/suisseintl-regular-webs.woff2) format("woff2"),url(/fonts/suisseintl-regular-webs.woff) format("woff");font-weight:400;font-stretch:normal;font-style:normal;font-display:block}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:.45vw}@media all and (min-width: 2000px){html{font-size:12px}}@media all and (max-width: 1190px){html{font-size:6px}}@media all and (max-width: 768px){html{font-size:5px}}body{background-color:#fff;font-family:"Suisse Intl","helvetica neue",helvetica,arial,sans-serif;color:#000;font-size:3.4rem;line-height:4.5rem;font-weight:400;letter-spacing:-0.05rem}#project_name{position:fixed;left:0;top:0;right:0;bottom:0;width:100%;height:100%;z-index:0;pointer-events:none}@media all and (max-width: 768px){#project_name{display:none}}#project_name .label{height:100vh;background-image:none;background-size:contain;background-repeat:no-repeat;background-position:0% 101%;margin:0 10rem}#project_name .default .label{background-image:none}#project_name .bridgebee .label{background-image:url("/images/labels/bridgebee.png")}#project_name .pianola .label{background-image:url("/images/labels/pianola.png")}#project_name .pianola_play .label{background-image:url("/images/labels/pianola_play.png")}#project_name .renew .label{background-image:url("/images/labels/renew.png")}#project_name .racetimer .label{background-image:url("/images/labels/racetimer.png")}#project_name .racetimer_ios .label{background-image:url("/images/labels/racetimer_ios.png")}#project_name .misc .label{background-image:url("/images/labels/misc.png")}#project_name .contact .label{background-image:url("/images/labels/contact.png")}.container{position:relative;margin:0 auto;width:100%;max-width:2800px;z-index:1}strong{font-weight:400}sup{vertical-align:super;font-size:.75em;line-height:0}img{transition:transform .6s cubic-bezier(0.2, 1, 0.5, 1)}img.appear-from-above{transform:translateY(-5rem)}img.appear-from-below{transform:translateY(5rem)}.material-symbols-sharp{font-size:inherit;position:relative;top:.5rem}.linktext{position:relative}.linktext:after{content:"";position:absolute;left:0;bottom:0;width:100%;border-bottom:.3rem solid #fff;border-color:inherit;transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(0.2, 1, 0.5, 1)}.linktext:hover:after{transform:scaleX(1);transform-origin:left}@media all and (max-width: 768px){.hidden-on-mobile{display:none !important}}#preloader{position:fixed;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background:#fff;color:#000;z-index:1000;cursor:default;user-select:none;white-space:nowrap;overflow:hidden}#preloader .container{width:100%;height:100%;display:flex;justify-content:space-between;flex-direction:column;padding:8rem 10rem}@media all and (max-width: 768px){#preloader .container{padding:5rem}}#preloader .container #name{position:relative;flex-grow:1;font-size:30vw;transition:font-size 1s cubic-bezier(0.2, 1, 0.5, 1)}#preloader .container #name strong{position:absolute;z-index:100;left:50%;top:50%;transform:translate(-50%, -50%);transition:opacity 1s cubic-bezier(0.2, 1, 0.5, 1);opacity:0}#preloader .container #name strong span{display:inline-block;position:relative;transition:transform 1s cubic-bezier(0.2, 1, 0.5, 1)}#preloader .container #name strong span:nth-child(1){transform:translate(0, 40rem)}#preloader .container #name strong span:nth-child(2){transform:translate(100rem, -50rem)}#preloader .container #name strong span:nth-child(3){transform:translate(-40rem, -45rem)}#preloader .container #name strong span:nth-child(4){transform:translate(30rem, 25rem)}#preloader .container #name strong span:nth-child(5){transform:translate(-40rem, -10rem)}#preloader .container #name strong span:nth-child(6){transform:translate(50rem, -20rem)}#preloader .container #name strong span:nth-child(7){transform:translate(-10rem, 30rem)}#preloader .container #name.sorted{font-size:12vw}#preloader .container #name.sorted strong{opacity:1}#preloader .container #name.sorted strong span:nth-child(1){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(2){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(3){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(4){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(5){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(6){transform:translate(0, 0)}#preloader .container #name.sorted strong span:nth-child(7){transform:translate(0, 0)}#preloader .container #name.positioned{font-size:inherit}#preloader .container #name.positioned strong{animation:nameToFinalPosition .8s cubic-bezier(0.2, 1, 0.5, 1) forwards}#preloader .container #bar .pace{background:#000;z-index:1100}#preloader .container #bar .pace .pace-progress{position:relative;height:.3rem;background:#fff}#preloader .container #bar .pace .pace-progress:after{content:attr(data-progress-text);position:absolute;left:0;top:-2.2rem;text-align:right;display:block;background:#fff;transform:translateX(-100%);padding-left:2rem}#single .container{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:8rem 10rem;gap:5rem}@media all and (max-width: 768px){#single .container{padding:5rem}}#single .container .linktext:after{border-color:#000}#single .container h1{font-size:8rem;line-height:8.5rem}#single .container #info{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem}@media all and (max-width: 768px){#single .container #info{display:block}}#single .container #info div{width:50%}@media all and (max-width: 768px){#single .container #info div{width:auto}}#single .container #info div p{margin-top:3rem}#hello .container{padding:8rem 10rem}@media all and (max-width: 768px){#hello .container{padding:5rem}}#hello .container .linktext:after{border-color:#000}#hello .container h1{font-size:8rem;line-height:8.5rem}#hello .container #intro{margin:10rem 0}#hello .container #info{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem}@media all and (max-width: 768px){#hello .container #info{display:block}}#hello .container #info div{width:50%}@media all and (max-width: 768px){#hello .container #info div{width:auto}}#hello .container #info div p{margin-top:3rem}#home{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:8rem 10rem}@media all and (max-width: 768px){#home{display:block;padding:5rem;min-height:auto}}#home .divider{margin:0}#home .faded{transform:translateY(3rem);opacity:0;transition:transform 1s cubic-bezier(0.2, 1, 0.5, 1),opacity 1s cubic-bezier(0.2, 1, 0.5, 1)}#home .faded.show{transform:translateY(0);opacity:1}#home h1{font-size:8rem;line-height:8.5rem}@media all and (max-width: 768px){#home h1{margin-top:5rem}}#home #info{display:flex;justify-content:space-between;align-items:flex-end}@media all and (max-width: 768px){#home #info{display:block}}#home #info div{width:50%}@media all and (max-width: 768px){#home #info div{width:auto}}#home #info div p{margin-top:3rem}.divider{display:flex;align-items:center;gap:2rem;margin:0 10rem}@media all and (max-width: 768px){.divider{margin-left:5rem;margin-right:5rem}}.divider .line{background-color:#000;flex-grow:1;height:.3rem}.project{position:relative;margin:-2.25rem 0;padding:10rem 10rem 15rem 10rem}@media all and (max-width: 768px){.project{padding:10rem 5rem}}.project .intro{display:flex;justify-content:space-between}@media all and (max-width: 1190px){.project .intro{flex-wrap:wrap}}@media all and (max-width: 768px){.project .intro{display:block}}.project .intro .name{width:25%;font-weight:400}@media all and (max-width: 1190px){.project .intro .name{width:50%}}@media all and (max-width: 768px){.project .intro .name{width:auto}}.project .intro .roles{width:25%}@media all and (max-width: 1190px){.project .intro .roles{width:50%}}@media all and (max-width: 768px){.project .intro .roles{margin-top:5rem;width:auto}.project .intro .roles ul li{display:inline}.project .intro .roles ul li:after{content:", "}.project .intro .roles ul li:first-child:before{content:"Roles: "}.project .intro .roles ul li:last-child:after{content:"."}}.project .intro .info{width:50%}@media all and (max-width: 1190px){.project .intro .info{width:100%;margin-top:5rem}}.project .intro .info p{margin:3rem 0}.project .images{text-align:center;margin-top:8rem}.project .images div{margin:0 auto}.project .images img{display:block;margin:12rem auto;max-width:100%}.project .images img.portrait{width:100%;max-width:2300px}.project .images img.landscape{max-height:80vh}#misc{padding:10rem 5rem 15rem 5rem}@media all and (max-width: 768px){#misc{padding:10rem 0}}#misc #miscContainer{display:flex;flex-wrap:wrap}@media all and (max-width: 768px){#misc #miscContainer{display:block}}#misc #miscContainer .project{width:50%;padding:0 5rem;margin-bottom:15rem;display:flex;flex-direction:column;justify-content:space-between}@media all and (max-width: 768px){#misc #miscContainer .project{display:block;width:auto;margin-bottom:10rem}}#misc #miscContainer .project .intro{display:block}#misc #miscContainer .project .intro .name{width:auto}#misc #miscContainer .project .intro .roles{width:auto;margin-top:3rem}#misc #miscContainer .project .intro .roles ul{display:inline}#misc #miscContainer .project .intro .roles ul li{display:inline}@media all and (max-width: 768px){#misc #miscContainer .project .intro .roles ul li:first-child:before{content:"Roles: "}}#misc #miscContainer .project .intro .roles ul li:after{content:", "}#misc #miscContainer .project .intro .roles ul li:last-child:after{content:"."}#misc #miscContainer .project .intro .info{width:100%}#misc #miscContainer .project .images img{margin:0 auto}#end{min-height:100vh;padding:8rem 10rem;display:flex;flex-direction:column;justify-content:space-between;gap:3rem}@media all and (max-width: 1190px){#end{min-height:50vh}}@media all and (max-width: 768px){#end{min-height:auto;padding:5rem}}#end .divider{margin:0}#end p{font-size:8rem;line-height:8.5rem}@keyframes nameToFinalPosition{100%{top:0%;left:0%;transform:translate(0%, 0%)}}
