@import"https://fonts.googleapis.com/css2?family=Alegreya+Sans:wght@400;600&family=Cormorant+Garamond:wght@500;600&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Spectral:wght@400;500&family=Fira+Sans:wght@500;600&display=swap";:root{color-scheme:light dark;--site-bg: #fdfdfd;--main-text-color: #1c1212;--status-indicator-color: #35901a;--btn-color: #4b667c;--btn-hover-color: #3d5d77;--btn-text-color: #ffffff;--btn-focus-color: #2e4455;--link-color: #4b667c;--main-heading-color: #1c1212;--muted-heading-color: #646464;--headings-color: #3d2c0d;--heading-lines-color: #827458;--footer-text-color: #949494;--footer-link-color: #2b2b2b;--footer-line-color: #eaeaea;--stage-text-color: #606060;--stage-bg-color: #ececec;--figure-bg: #ececec;--figure-shadow: 0 0 20px #989898;--window-control-bg: #adadad;--item-footer-text-color: #838383;--item-footer-link-color: #838383;--bullet-filter: none}h1,h2,h3,h4{font-weight:600;font-family:Alegreya Sans,Helvetica Neue,sans-serif;color:var(--main-heading-color);margin-top:1.5em;margin-bottom:.5em}h1{font-size:1.8rem;line-height:1.2}@media (max-width: 800px){h1{font-size:1.6rem}}@media all and (max-width: 680px){h1{font-size:1.5rem}}h2{font-size:1.5rem;line-height:1.3}@media (max-width: 800px){h2{font-size:1.2rem}}h3{letter-spacing:.5px;font-size:1.1rem;line-height:1.5}@media (max-width: 740px){h3{font-size:1.1rem}}.btn:not(.alt),button:not(.alt){background-color:var(--btn-color);border-radius:40px;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;line-height:1;color:var(--btn-text-color);text-decoration:none;text-align:center;box-sizing:border-box;padding:.35rem;display:inline-block;vertical-align:middle;font-family:Fira Sans,Helvetica Neue,sans-serif;font-weight:500}.btn:not(.alt):hover,button:not(.alt):hover{background-color:var(--btn-hover-color)}.btn:not(.alt):hover span:not(.sr-only),button:not(.alt):hover span:not(.sr-only){text-decoration:none;background-color:var(--btn-hover-color)}.btn:not(.alt):focus,button:not(.alt):focus{outline:none;box-shadow:none;background-image:repeating-linear-gradient(45deg,transparent,transparent .5rem,var(--btn-focus-color) .5rem,var(--btn-focus-color) 1rem);background-size:400% 400%;animation:move-bg 7s linear infinite}.btn:not(.alt) span:not(.sr-only),button:not(.alt) span:not(.sr-only){display:flex;align-items:center;justify-content:center;background:var(--btn-color);border-radius:40px;padding:.2rem .65rem;font-size:1rem}.btn:not(.alt) img,.btn:not(.alt) svg,button:not(.alt) img,button:not(.alt) svg{width:1.5rem;height:1.5rem;margin-right:.6rem}.btn:not(.alt) svg path,button:not(.alt) svg path{fill:currentColor}.btn:not(.alt).round,button:not(.alt).round{width:3.25rem;height:3.25rem}.btn:not(.alt).round img,.btn:not(.alt).round svg,button:not(.alt).round img,button:not(.alt).round svg{margin-right:0;width:1.75rem;height:1.75rem}.btn:not(.alt).round span:not(.sr-only),button:not(.alt).round span:not(.sr-only){padding:.45rem}@media (max-width: 430px){.btn:not(.alt).round,button:not(.alt).round{width:2.5rem;height:2.5rem}.btn:not(.alt).round img,.btn:not(.alt).round svg,button:not(.alt).round img,button:not(.alt).round svg{margin-right:0;width:1.25rem;height:1.25rem}.btn:not(.alt).round span:not(.sr-only),button:not(.alt).round span:not(.sr-only){padding:.35rem}}@keyframes move-bg{0%{background-position:0 0}to{background-position:0 100%}}@font-face{font-family:Code Saver;src:url(/assets/CodeSaver-Regular-BX8H3Yc2.otf)}header.main{display:flex;justify-content:space-between;align-items:center;max-width:900px;margin-left:auto;margin-right:auto;margin-bottom:1.5rem}@media all and (max-width: 680px){header.main{margin-bottom:1.25rem}}@media (max-width: 720px){header.main{display:block;text-align:center;margin-bottom:1rem}}header.main .logo-enter{transition:all .4s;transform:translate(-100%);opacity:0}header.main .logo-enter.logo-enter-active{transform:translate(0);opacity:1}header.main h1{color:var(--main-heading-color);margin-top:0;margin-bottom:0;font-family:Fraunces,Times New Roman,serif;font-weight:500;letter-spacing:.015em;line-height:1.1}header.main h1 .brand-line{display:block;font-size:1.5rem;font-family:Fraunces,Times New Roman,serif}header.main h1 .brand-line-top{font-size:2rem;letter-spacing:.04em}header.main h1 .brand-line-bottom{font-size:1.35rem;letter-spacing:.02em}@media (max-width: 930px){header.main h1 .brand-line-top{font-size:1.75rem;letter-spacing:.07em}header.main h1 .brand-line-bottom{font-size:1.2rem;letter-spacing:.035em}}@media (max-width: 810px){header.main h1 .brand-line-top{font-size:1.7rem;letter-spacing:.06em}header.main h1 .brand-line-bottom{font-size:1.15rem;letter-spacing:.03em}}header.main h1 a{color:var(--main-heading-color);text-decoration:none}header.main nav{margin-right:-.7rem;text-align:right;line-height:1.8}@media (max-width: 720px){header.main nav{text-align:center;margin-top:.4rem;margin-right:0;margin-left:0}}header.main nav a{font-size:1.05rem;color:var(--main-heading-color);font-family:Alegreya Sans,Helvetica Neue,sans-serif;letter-spacing:.08em;margin-right:.7rem;margin-left:.7rem;text-decoration:none;display:inline-block}header.main nav a.active{border-bottom:1px solid var(--main-heading-color)}@media (max-width: 370px){header.main nav a{margin-right:.4rem;margin-left:.4rem}}@media (max-width: 420px){header.main nav a{margin-right:.4rem;margin-left:.4rem;letter-spacing:.05em;font-size:1rem}}@media (max-width: 810px){header.main nav a{letter-spacing:.06em;margin-right:.4rem;margin-left:.4rem}}.portfolio-wrapper{margin-left:auto;margin-right:auto;max-width:800px}.portfolio-wrapper footer{position:relative;padding-top:30px;text-align:center;height:150px;overflow:hidden}.portfolio-wrapper footer a{display:inline-block}.portfolio-wrapper footer img{position:relative;display:block;margin:auto}.portfolio-wrapper footer .wp-ani-logo-outside{width:150px;animation-name:rotation;animation-duration:30s;animation-iteration-count:infinite;animation-timing-function:linear}.portfolio-wrapper footer .wp-ani-logo-center{width:90px;top:-105px}.portfolio{font-size:0;display:flex;flex-wrap:wrap;margin:-1.5rem -1.5rem 2rem;align-items:center}@media all and (max-width: 800px){.portfolio{margin-top:-1.25rem;margin-left:-1.25rem;margin-right:-1.25rem}}@media all and (max-width: 500px){.portfolio{margin-top:-1rem;margin-left:-1rem;margin-right:-1rem}}@media all and (max-width: 400px){.portfolio{margin-left:-.75rem;margin-right:-.75rem}}.portfolio li{box-sizing:border-box;width:33.3%;text-align:center;padding:1.5rem}@media all and (max-width: 800px){.portfolio li{padding:1.25rem}}@media all and (max-width: 600px){.portfolio li{width:50%}}@media all and (max-width: 500px){.portfolio li{padding:1rem}}@media all and (max-width: 400px){.portfolio li{padding:.75rem}}.portfolio figure{cursor:pointer;transition:border-color .5s,box-shadow .4s;font-size:0;overflow:hidden;width:100%}.portfolio figure img{width:100%;height:auto}.portfolio figure a{display:block}.project-logos{margin-top:0;margin-bottom:1.5rem;justify-content:center}.project-logos li{width:25%}@media all and (max-width: 930px){.project-logos li{width:33.333%}}@media all and (max-width: 420px){.project-logos li{width:50%}}.project-logos figure{cursor:pointer}.project-logos figure a{display:block}.project-logos-wide{width:100%;margin-left:0;margin-right:0;padding:0}.project-logos-wide .project-logos{max-width:100%;margin-left:auto;margin-right:auto}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.portfolio-item header{display:flex;width:100%;justify-content:space-between;align-items:center;margin-bottom:1rem;max-width:800px;margin-left:auto;margin-right:auto}.portfolio-item header .name--desc--url{text-align:center;margin-left:.2rem;margin-right:.2rem}@media (max-width: 350px){.portfolio-item header .name--desc--url{margin-left:0;margin-right:0}}.portfolio-item header h2{margin-top:0;margin-bottom:.3rem}.portfolio-item header .desc,.portfolio-item header .url{line-height:1.5}.portfolio-item header .stage{color:var(--stage-text-color);font-size:.8rem;background:var(--stage-bg-color);padding:.1rem .6rem;border-radius:100px;display:inline-block;margin-top:.4rem}.portfolio-item header .prev-btn-wrapper img{transform:rotate(180deg);position:relative;left:-3px}.portfolio-item header .next-btn-wrapper img{position:relative;left:2px}@media (max-width: 800px){.portfolio-item header{margin-bottom:1.4rem}}@media (max-width: 650px){.portfolio-item header .desc{margin-left:.3rem;margin-right:.3rem}.portfolio-item header .btn:not(.alt).round,.portfolio-item header button:not(.alt).round{width:2.75rem;height:2.75rem}.portfolio-item header .btn:not(.alt).round img,.portfolio-item header button:not(.alt).round img{width:1.25rem;height:1.25rem}}@media (max-width: 600px){.portfolio-item header{flex-wrap:wrap;justify-content:center;row-gap:.75rem}.portfolio-item header .name--desc--url{order:1;width:100%}.portfolio-item header .prev-btn-wrapper{order:2}.portfolio-item header .next-btn-wrapper{order:3}}@media (max-width: 349px){.portfolio-item header{margin-bottom:.5rem}.portfolio-item header .btn{display:none}.portfolio-item header .desc{margin-left:0;margin-right:0}}.portfolio-item .features--tech{margin-bottom:1rem;max-width:800px;margin-left:auto;margin-right:auto;display:flex;gap:1rem;align-items:start}.portfolio-item .features--tech h3{margin-top:0}@media (max-width: 820px){.portfolio-item .features--tech{display:block;text-align:center}}@media (max-width: 600px){.portfolio-item .features--tech{gap:.75rem}}.portfolio-item .features{list-style:none;padding-left:20px;width:60%;margin-left:0;margin-top:0;margin-right:0}@media (max-width: 820px){.portfolio-item .features{width:auto;display:inline-flex;flex-direction:column;text-align:left;margin-bottom:.5rem}}@media (max-width: 600px){.portfolio-item .features{padding-left:1rem}}.portfolio-item .tech{width:40%;margin:0;gap:.75rem}@media (max-width: 820px){.portfolio-item .tech{display:flex;justify-content:center;width:100%;text-align:center;margin-top:.5rem;margin-bottom:1.5rem}}.portfolio-item figure{background:var(--figure-bg);border-radius:10px;width:fit-content;margin-left:auto;margin-right:auto;margin-bottom:3rem;line-height:0;font-size:0;overflow:hidden;box-shadow:var(--figure-shadow)}@media (max-width: 375px){.portfolio-item figure{margin-left:-1rem;margin-right:-1rem;border-radius:0}}.portfolio-item figure .title-bar{display:flex;align-items:center;padding-left:10px;padding-right:10px;font-size:1rem;line-height:2}.portfolio-item figure .title{flex-grow:1}.portfolio-item figure button{background:var(--window-control-bg);margin-left:10px}.portfolio-item footer{text-align:center;font-size:.8rem;line-height:1.5;color:var(--item-footer-text-color)}.portfolio-item footer a{color:var(--item-footer-link-color)}.contact-info{max-width:800px;margin-left:auto;margin-right:auto;display:flex;justify-content:space-between;align-items:flex-start;margin-top:.6rem}@media (max-width: 700px){.contact-info{margin-top:.5rem;display:grid;grid-template-columns:minmax(0,max-content);justify-content:center}}@media (max-width: 420px){.contact-info{width:100%}}.contact-info .btn span:not(.sr-only){justify-content:flex-start}.contact-info .btn{text-align:left}@media (max-width: 700px){.contact-info .btn{text-align:center}}.contact-info .contact-points{margin:0;display:inline-grid}@media (max-width: 700px){.contact-info .contact-points{display:contents}}.contact-info .contact-points .contact-point{margin-bottom:.7rem;display:flex}@media (max-width: 700px){.contact-info .contact-points .contact-point:last-child{margin-bottom:1.75rem}}.contact-info .contact-points .contact-point .btn{width:100%;margin-right:0;white-space:nowrap}@media (max-width: 420px){.contact-info .contact-points .contact-point .btn{display:block;width:100%}}.contact-info .qr-code--v-card{width:300px;display:grid;justify-content:end}@media (max-width: 700px){.contact-info .qr-code--v-card{display:contents}}@media (max-width: 420px){.contact-info .qr-code--v-card{text-align:center;width:100%}}.contact-info .qr-code--v-card .scan{line-height:1.25}@media (max-width: 420px){.contact-info .qr-code--v-card .scan{margin-top:2rem}}.contact-info .qr-code--v-card .btn{width:100%;margin-bottom:.7rem;white-space:nowrap}.contact-info .qr-code--v-card .btn .extra-wording{padding:0}@media (max-width: 420px){.contact-info .qr-code--v-card .btn .extra-wording{display:inline}}.resume{margin-left:auto;margin-right:auto;max-width:800px}.resume>h2{display:flex;justify-content:space-between;align-items:center}.resume ul{list-style:disc}.resume strong{font-weight:500;text-decoration:underline}.swipe-nav-container{overflow:hidden;position:relative;width:100%}.swipe-nav-view{width:100%;position:relative;top:0;left:0}.about{display:grid;grid-template-columns:4fr 3fr;column-gap:1.7rem;align-items:start}@media (max-width: 900px){.about{grid-template-columns:1fr 1fr;column-gap:1rem}}@media (max-width: 800px){.about{grid-template-columns:1fr;row-gap:.5rem}}@media (max-width: 500px){.about{row-gap:1rem}}.intro p{margin-top:0;font-size:1.1rem;line-height:1.8}.intro p:last-child{margin-bottom:0}@media (max-width: 900px){.intro p{font-size:1rem}}.team-members{margin-top:1rem;display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25rem;row-gap:1rem}@media (max-width: 800px){.team-members{gap:.75rem;margin-bottom:1rem}}@media (max-width: 800px){.team-members{margin-bottom:.75rem}}@media (max-width: 500px){.team-members{margin-bottom:.5rem}}@media (max-width: 400px){.team-members{margin-bottom:.25rem}}.team-member{display:flex;align-items:center;gap:.75rem}@media (max-width: 800px){.team-member{gap:.5rem}}.team-member .headshot{width:2.5rem;height:2.5rem;border-radius:50%;object-fit:cover}.team-member .member-info{display:flex;flex-direction:column;line-height:1.4}.team-member .member-info .name{font-weight:600;font-size:.95rem}.team-member .member-info .title{font-size:.85rem}.services{margin-top:.15rem}@media (max-width: 800px){.services{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;font-size:.9rem}}@media (max-width: 500px){.services{display:block;margin-top:0;font-size:1rem}}.tech{display:flex;flex-wrap:wrap;align-items:center;column-gap:1rem;row-gap:.8rem;line-height:1}.tech>*{display:flex;align-items:center}.tech>* img{width:auto;height:1.5rem}.tech>* img.hasLabelBefore{margin-left:.25rem}.tech>* img.hasLabelAfter{margin-right:.25rem}@media (max-width: 600px){.tech{gap:.7rem;column-gap:.8rem;font-size:.95rem}.tech img{height:1.25rem}}.stack-toolbox-grid{column-count:2;column-gap:2rem;margin-top:1rem}@media (max-width: 700px){.stack-toolbox-grid{column-count:1}}.stack-toolbox-category{break-inside:avoid;margin-bottom:1.5rem}.stack-toolbox-category h4{margin:0 0 .5rem;font-size:1.05rem;letter-spacing:.5px}html{font-size:21px;font-family:Alegreya Sans,Helvetica Neue,sans-serif;line-height:2;background-color:var(--site-bg);color:var(--main-text-color)}@media (max-width: 600px){html{font-size:16px;line-height:1.7}}body{margin:2rem}@media (max-width: 720px){body{margin-top:1.5rem}}@media (max-width: 680px){body{margin:1.2rem}}@media (max-width: 450px){body{margin:1rem}}@media (max-width: 360px){body{margin:.75rem}}ul{padding:0;list-style:none;margin-left:0}ul.right-aligned{direction:rtl;margin-left:0;margin-right:.75rem}figure{margin:0}.non-jumpy-img{position:relative;height:0;font-size:0;line-height:0;display:block;width:100%;overflow:hidden}.non-jumpy-img img{position:absolute;top:0;left:0;width:100%}p{margin:0 0 .5em}img{max-width:100%}a{color:var(--link-color)}.container{max-width:800px;margin-left:auto;margin-right:auto}.wide-content{max-width:900px}.wider-content{max-width:1100px}ul.bullets{list-style:none;padding-left:1.25rem;margin-top:0;margin-bottom:0}ul.bullets li{line-height:1.5;position:relative;margin-bottom:.5rem}ul.bullets li:before{content:"";display:inline-block;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3csvg%20viewBox='0%200%2095.001%2095.001442'%20x='0px'%20y='0px'%20version='1.1'%20width='95.000999'%20height='95.001442'%20id='svg1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:svg='http://www.w3.org/2000/svg'%3e%3cdefs%20id='defs1'%20/%3e%3cpath%20fill='%234b667c'%20d='m%2083.490749,35.370722%20-57.9,-33.4199999%20c%20-12.26,-7.07%20-26.10000019,6.43%20-19.2900002,18.8499999%20l%2010.9200002,20%20a%2014.06,14.06%200%200%201%200,13.44%20l%20-10.9200002,19.96%20c%20-6.80999999,12.42%207.0300002,25.919998%2019.2900002,18.85%20l%2057.9,-33.42%20a%2014,14%200%200%200%200,-24.26%20z'%20id='path1'%20/%3e%3c/svg%3e");background-size:cover;filter:var(--bullet-filter);width:.75rem;height:.75rem;position:absolute;left:-1.2rem;top:.4rem}@media (max-width: 800px){ul.bullets{padding-left:1rem}ul.bullets li:before{width:.7rem;height:.7rem;left:-1rem;top:.35rem}}.section-title.centered{text-align:center;font-weight:600;font-size:1.35rem;letter-spacing:.02em;margin-top:2rem;margin-bottom:1rem}.page-not-found{text-align:center;font-size:1.25rem;margin-top:2rem}
