@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-latin-400-normal-BTkUljjl.woff2)format("woff2"),url(/assets/noto-sans-latin-400-normal-DPpKfCgK.woff)format("woff")}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-latin-500-normal-DCA2Z9Cj.woff2)format("woff2"),url(/assets/noto-sans-latin-500-normal-CDPngY5C.woff)format("woff")}:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#eef4f3;font-family:Noto Sans,sans-serif;font-weight:400;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:Trebuchet MS,Trebuchet,sans-serif;font-style:italic;font-weight:700}@media (prefers-color-scheme:dark){:root{color:#f3f4f6;background-color:#111827}}*{box-sizing:border-box}body{background-color:inherit;min-height:100vh;margin:0;font-family:inherit}button,input,select,textarea{font:inherit}a{color:inherit}.page-shell{width:100%;max-width:48rem;margin:0 auto;padding:2rem 1rem 4rem}.site-footer{border-top:1px solid;flex-direction:column;gap:.75rem;margin-top:3rem;padding-top:1rem;display:flex}.site-footer__note{margin:0}.site-footer__legal-list{gap:1rem;margin:0;padding:0;list-style:none;display:flex}.legal-page__title{margin:0 0 1.5rem;font-size:1.5rem}.legal-page__section+.legal-page__section{margin-top:1.5rem}.legal-page__heading{margin:0 0 .75rem;font-size:1.125rem}.legal-page__paragraph{margin:0 0 .75rem}.legal-page__paragraph:last-child{margin-bottom:0}.business-card{flex-direction:row;align-items:flex-start;gap:1rem;display:flex}.business-card__photo{object-fit:cover;border-radius:.5rem;flex-shrink:0;width:10rem;height:10rem;display:block}.business-card__body{width:100%;min-width:0}.business-card__name{margin:0;font-size:1.5rem}.business-card__columns{grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem;display:grid}@media (width<=34rem){.business-card__columns{grid-template-columns:1fr}}@media (width<=26rem){.business-card{flex-direction:column;align-items:flex-start}.business-card__photo{width:5rem;height:5rem}}.business-card__text,.business-card__email,.business-card__link{margin:0}.business-card__column>*+*{margin-top:.5rem}.project-image-carousel{border-radius:.5rem;align-items:stretch;width:100%;display:flex;overflow:hidden}.project-image-carousel__viewport{aspect-ratio:16/10;background-color:#0000000a;border-radius:.5rem;flex:1;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.project-image-carousel__viewport{background-color:#ffffff0f}}.project-image-carousel__image-button{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.project-image-carousel--lightbox .project-image-carousel__image-button{cursor:zoom-out}.project-image-carousel__image-shell{width:100%;height:100%;display:block}.project-image-carousel__image{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.project-image-carousel__counter{background-color:#ffffffd9;border-radius:.25rem;padding:.125rem .375rem;font-size:.875rem;position:absolute;bottom:.5rem;right:.5rem}@media (prefers-color-scheme:dark){.project-image-carousel__counter{background-color:#111827d9}}.project-image-carousel__nav{color:inherit;cursor:pointer;background-color:#0000000f;border:none;flex:0 0 2.75rem;justify-content:center;align-self:stretch;align-items:center;padding:0;display:flex}@media (prefers-color-scheme:dark){.project-image-carousel__nav{background-color:#ffffff14}}.project-image-carousel__nav:hover{background-color:#0000001a}@media (prefers-color-scheme:dark){.project-image-carousel__nav:hover{background-color:#ffffff1f}}.project-image-carousel__icon{width:1.5rem;height:1.5rem}.project-image-carousel--inline .project-image-carousel__viewport{border-radius:0}.project-image-carousel--lightbox{width:100%}.project-image-carousel--lightbox .project-image-carousel__viewport{border-radius:0;max-height:min(100dvh - 1rem,62.5vw - 3.4375rem)}.project-image-carousel--lightbox .project-image-carousel__image{width:100%;height:100%;max-height:none}@media (width<=48rem){.project-image-carousel--lightbox .project-image-carousel__viewport{aspect-ratio:unset;height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem)}}.project-image-lightbox{background:0 0;border:none;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;overflow:visible}.project-image-lightbox::backdrop{background-color:#000000e0}@media (prefers-reduced-motion:no-preference){.project-image-lightbox::backdrop{animation:.16s ease-out project-image-lightbox-backdrop-in}.project-image-lightbox__inner{animation:.16s ease-out project-image-lightbox-content-in}}@keyframes project-image-lightbox-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes project-image-lightbox-content-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.project-image-lightbox__inner{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;padding:0;display:flex}.project-image-lightbox__carousel-wrap{width:100%;max-width:72rem;position:relative}.project-image-lightbox .project-image-carousel--lightbox{color:#f9fafb}.project-image-lightbox .project-image-carousel--lightbox .project-image-carousel__viewport,.project-image-lightbox .project-image-carousel--lightbox .project-image-carousel__nav{background-color:#ffffff0f}.project-image-lightbox .project-image-carousel--lightbox .project-image-carousel__nav:hover{background-color:#ffffff1f}.project-image-lightbox .project-image-carousel--lightbox .project-image-carousel__counter{background-color:#111827d9}.project-card{flex-direction:column;gap:.75rem;padding:1rem 0 0;display:flex;container-type:inline-size}.project-card__header{flex-direction:column;gap:.5rem;width:100%;display:flex}.project-card__title-row{flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;display:flex}.project-card__title{flex:auto;min-width:0;margin:0;font-size:calc(1.125rem + 2pt)}.project-card__pills{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;min-width:0;margin-left:auto;display:flex}@container (width<=42rem){.project-card__title{flex-basis:100%}.project-card__pills{flex-basis:100%;justify-content:flex-start;margin-left:0}}.project-card__pill{border-radius:9999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.project-card__link-out{flex-shrink:0;width:.85rem;height:.85rem}.project-card__pill--live{color:#14532d;background-color:#86efac}.project-card__pill--live:hover{background-color:#bbf7d0}.project-card__pill--github{color:#e3eafc;background-color:#4288df}.project-card__pill--github:hover{background-color:#65a4f1}.project-card__pill--storybook{color:#020617;background-color:#fcd34d}.project-card__pill--storybook:hover{background-color:#fde68a}.project-card__summary{margin:0}.project-card__details-toggle{color:inherit;font-family:inherit;font-size:11pt;font-weight:inherit;line-height:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.25rem;padding:0;text-decoration:underline;display:inline-flex}.project-card__details-chevron{width:1rem;height:1rem;transition:transform .25s ease-out}.project-card__details-toggle[aria-expanded=true] .project-card__details-chevron{transform:rotate(180deg)}.project-card__details-panel{grid-template-rows:0fr;transition:grid-template-rows .25s ease-out;display:grid}.project-card__details-panel--open{grid-template-rows:1fr}.project-card__details-inner{font-size:calc(1rem - 2pt);overflow:hidden}.project-card__details-columns{grid-template-columns:1fr 1fr;gap:1rem 2rem;display:grid}.project-card__details-list{margin:0;padding-left:1.25rem}.project-card__details-list li+li{margin-top:.25rem}.project-list__heading{border-bottom:1px solid;margin:1rem 0 0;font-size:calc(1.25rem + 2pt)}.project-list__items{margin:0;padding:0;list-style:none}.project-list__item+.project-list__item{margin-top:0}.project-list__item+.project-list__item .project-card{padding-top:0}.project-list__item:last-child .project-card{padding-bottom:1rem}.project-list__item:not(:last-child) .project-card:after{content:"";margin-top:.25rem;margin-bottom:1rem;border-bottom:1px solid;width:min(90%,40rem);margin-inline:auto;display:block}.bio-card{flex-direction:column;gap:.75rem;padding:.5rem 0;display:flex}.bio__heading{border-bottom:1px solid;margin:1rem 0 0;font-size:calc(1.25rem + 2pt)}.bio-card__body{flex-direction:column;gap:.75rem;display:flex}.bio-card__body p{margin:0}
