.theme-toggle[data-astro-cid-oemx5le4].theme-toggle--reversed .theme-toggle__classic[data-astro-cid-oemx5le4]{transform:scaleX(-1)}.theme-toggle[data-astro-cid-oemx5le4]{--theme-toggle__classic--duration:.5s}.theme-toggle__classic[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{transition-timing-function:cubic-bezier(0,0,.15,1.25);transform-origin:center;transition-duration:calc(var(--theme-toggle__classic--duration) * .8)}.theme-toggle__classic[data-astro-cid-oemx5le4] g[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{transition-property:opacity,transform;transition-delay:calc(var(--theme-toggle__classic--duration) * .2)}.theme-toggle__classic[data-astro-cid-oemx5le4] :first-child[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{transition-property:transform,d}.theme-toggle[data-astro-cid-oemx5le4] input[data-astro-cid-oemx5le4][type=checkbox]:checked~.theme-toggle__classic[data-astro-cid-oemx5le4] g[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4],.theme-toggle--toggled[data-astro-cid-oemx5le4]:not(label).theme-toggle .theme-toggle__classic[data-astro-cid-oemx5le4] g[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{transform:scale(.5) rotate(45deg);opacity:0;transition-delay:0s}.theme-toggle[data-astro-cid-oemx5le4] input[data-astro-cid-oemx5le4][type=checkbox]:checked~.theme-toggle__classic[data-astro-cid-oemx5le4] :first-child[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4],.theme-toggle--toggled[data-astro-cid-oemx5le4]:not(label).theme-toggle .theme-toggle__classic[data-astro-cid-oemx5le4] :first-child[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{d:path("M-12 5h30a1 1 0 0 0 9 13v24h-39Z");transition-delay:calc(var(--theme-toggle__classic--duration) * .2)}@supports not (d:path("")){.theme-toggle[data-astro-cid-oemx5le4] input[data-astro-cid-oemx5le4][type=checkbox]:checked~.theme-toggle__classic[data-astro-cid-oemx5le4] :first-child[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4],.theme-toggle--toggled[data-astro-cid-oemx5le4]:not(label).theme-toggle .theme-toggle__classic[data-astro-cid-oemx5le4] :first-child[data-astro-cid-oemx5le4] path[data-astro-cid-oemx5le4]{transform:translate3d(-12px,10px,0)}}.theme-toggle[data-astro-cid-oemx5le4]{border:none;background:0 0;cursor:pointer}.theme-toggle[data-astro-cid-oemx5le4] input[data-astro-cid-oemx5le4][type=checkbox]{display:none}.theme-toggle[data-astro-cid-oemx5le4] .theme-toggle-sr[data-astro-cid-oemx5le4]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (prefers-reduced-motion:reduce){.theme-toggle[data-astro-cid-oemx5le4]:not(.theme-toggle--force-motion) [data-astro-cid-oemx5le4]{transition:none!important}}#themeToggle[data-astro-cid-oemx5le4]{border:0;background:none;display:inline-flex;align-items:center;justify-content:center;transform:translate(.2rem)}#themeToggle[data-astro-cid-oemx5le4] svg[data-astro-cid-oemx5le4]{display:block;height:1.75rem;width:auto;transition:transform .3s ease}#themeToggle[data-astro-cid-oemx5le4]:hover svg[data-astro-cid-oemx5le4]{transform:scale(1.1)}.sun[data-astro-cid-oemx5le4]{fill:var(--dark)}.moon[data-astro-cid-oemx5le4],.dark .sun[data-astro-cid-oemx5le4]{fill:transparent}.dark .moon[data-astro-cid-oemx5le4]{fill:var(--light)}#readingToggle[data-astro-cid-fdpaiazt]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s ease transform}#readingToggle[data-astro-cid-fdpaiazt]:hover{transform:scale(1.1)}#readingToggle[data-astro-cid-fdpaiazt] svg[data-astro-cid-fdpaiazt]{height:1.25rem;width:auto;display:block}#menuButton[data-astro-cid-4yyail6s]{width:24px;height:16px;position:relative;margin:0 auto;margin-left:.15rem;transform:rotate(0);transition:transform .3s ease;cursor:pointer;padding:0}#menuButton[data-astro-cid-4yyail6s]:hover{transform:scale(1.1)}#menuButton[data-astro-cid-4yyail6s]:before{content:"";position:absolute;top:-40%;left:-20%;width:140%;height:180%}#menuButton[data-astro-cid-4yyail6s] span[data-astro-cid-4yyail6s]{display:block;position:absolute;height:1.5px;width:100%;border-radius:2px;left:0;transition:background-color .3s ease;pointer-events:none}#menuButton[data-astro-cid-4yyail6s] span[data-astro-cid-4yyail6s]:nth-child(1){top:0}#menuButton[data-astro-cid-4yyail6s] span[data-astro-cid-4yyail6s]:nth-child(2){top:7.5px}#menuButton[data-astro-cid-4yyail6s] span[data-astro-cid-4yyail6s]:nth-child(3){top:15px}@media (min-width: 1024px){.social__link[data-astro-cid-upu6fzxr]:hover svg[data-astro-cid-upu6fzxr]{transform:scale(1.1)}.social__link[data-astro-cid-upu6fzxr]:hover svg[data-astro-cid-upu6fzxr] path[data-astro-cid-upu6fzxr]{fill:var(--blue)}}.social__icon[data-astro-cid-upu6fzxr]{width:var(--size);height:var(--size);transition:transform .35s ease}.social__icon[data-astro-cid-upu6fzxr] path[data-astro-cid-upu6fzxr]{transition:fill .35s ease}.drawer[data-astro-cid-m7hxj2ve]{position:fixed;top:0;right:-20rem;width:20rem;height:100vh;height:100dvh;z-index:1000;padding:clamp(6rem,15vw,10rem) 2.5rem;padding-left:6rem;display:flex;flex-direction:column;justify-content:space-between;border-left-style:solid;border-left-width:1px;transition:right .3s ease,padding-left .5s ease;pointer-events:none}.drawer[data-astro-cid-m7hxj2ve].open{right:0;padding-left:2.5rem;pointer-events:auto}.drawer[data-astro-cid-m7hxj2ve].open:after{clip-path:polygon(0 0,100% 0,100% 100%,100% 100%)}.drawer[data-astro-cid-m7hxj2ve].open:before{opacity:1}@media (min-width: 512px){.drawer[data-astro-cid-m7hxj2ve]{border:none;width:60vw;right:-100vw}.drawer[data-astro-cid-m7hxj2ve]:after{content:"";position:absolute;top:0;width:6rem;left:calc(-6rem + 1px);height:100%;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transition:clip-path .3s ease}.drawer[data-astro-cid-m7hxj2ve]:before{content:"";position:absolute;top:0;left:-6rem;width:6rem;height:100%;clip-path:polygon(0 0,100% 0,100% 100%,100% 100%);opacity:0;transition:opacity .3s ease}}@media (min-width: 1024px){.drawer[data-astro-cid-m7hxj2ve]{width:40rem}}.drawer__content[data-astro-cid-m7hxj2ve]{position:relative}.drawer__close[data-astro-cid-m7hxj2ve]{position:absolute;top:1rem;right:1rem;background:none;border:none;color:inherit;cursor:pointer;padding:.5rem;border-radius:.25rem;z-index:10}.drawer__close[data-astro-cid-m7hxj2ve] svg[data-astro-cid-m7hxj2ve]{display:block}@media (min-width: 1024px){.drawer__close[data-astro-cid-m7hxj2ve]{top:2rem;right:2rem}.drawer__close[data-astro-cid-m7hxj2ve] svg[data-astro-cid-m7hxj2ve]{width:2rem;height:2rem;transform-origin:center;transition:transform .3s ease}.drawer__close[data-astro-cid-m7hxj2ve] svg[data-astro-cid-m7hxj2ve] path[data-astro-cid-m7hxj2ve]{transition:stroke .3s ease}.drawer__close[data-astro-cid-m7hxj2ve]:hover svg[data-astro-cid-m7hxj2ve]{transform:scale(1.1)}}.drawer__nav__list[data-astro-cid-m7hxj2ve]{display:flex;flex-direction:column;gap:1rem}.drawer__nav__item[data-astro-cid-m7hxj2ve]{font-family:var(--ff-mono);font-size:var(--fs-lg)}@media (min-width: 768px){.drawer__nav__item[data-astro-cid-m7hxj2ve]{font-size:1.75rem}}.drawer__nav__item__link--active[data-astro-cid-m7hxj2ve]{font-weight:var(--bold)}@media (min-width: 1024px){.drawer__nav__item__link[data-astro-cid-m7hxj2ve]{position:relative;transition:color .3s ease}.drawer__nav__item__link[data-astro-cid-m7hxj2ve]:before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background-color:var(--blue);transition:width .3s ease;z-index:-1}.drawer__nav__item__link[data-astro-cid-m7hxj2ve]:hover{color:var(--dark)}.drawer__nav__item__link[data-astro-cid-m7hxj2ve]:hover:before{width:100%}}.drawer__contact[data-astro-cid-m7hxj2ve]{padding-top:1rem;border-top-style:solid;border-top-width:1px}@media (min-width: 512px){.drawer__contact[data-astro-cid-m7hxj2ve]{display:flex;align-items:center;gap:1rem}}.drawer__contact__social[data-astro-cid-m7hxj2ve]{display:flex;gap:.5rem}.drawer__contact__email[data-astro-cid-m7hxj2ve]{font-size:var(--fs-xs);font-family:var(--ff-mono)}@media (min-width: 512px){.drawer__contact__email[data-astro-cid-m7hxj2ve]{margin-top:-4px}}.drawer-overlay[data-astro-cid-m7hxj2ve]{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background-color:#0000004d;backdrop-filter:blur(1rem);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:999}.drawer[data-astro-cid-m7hxj2ve].open~.drawer-overlay[data-astro-cid-m7hxj2ve]{opacity:1;visibility:visible}@keyframes padleft{0%{padding-left:6rem}to{padding-left:2.5rem}}.reading-modal[data-astro-cid-3jnym54a]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;pointer-events:none}.reading-modal--open[data-astro-cid-3jnym54a]{pointer-events:auto}.reading-modal__content[data-astro-cid-3jnym54a]{padding:1rem;position:absolute;border-radius:var(--radius);border-width:1px;border-style:solid;max-width:clamp(18rem,100% - 2rem,32rem);max-height:80vh;overflow:hidden;margin-top:1.5rem;margin-right:1rem;opacity:0;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease}.reading-modal--open[data-astro-cid-3jnym54a] .reading-modal__content[data-astro-cid-3jnym54a]{opacity:1;transform:translateY(0)}.reading-modal__header[data-astro-cid-3jnym54a]{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border)}.reading-modal__header__title[data-astro-cid-3jnym54a]{font-weight:400;margin:0 0 1rem;font-size:1.5rem}.reading-modal__header__close-button[data-astro-cid-3jnym54a]{background:none;border:none;cursor:pointer;padding:.35rem;transform:translate(8px,-7px)}.reading-modal__header__close-button[data-astro-cid-3jnym54a] svg[data-astro-cid-3jnym54a]{width:1.25rem;height:1.25rem;display:block;transition:transform .3s ease}.reading-modal__header__close-button[data-astro-cid-3jnym54a]:hover svg[data-astro-cid-3jnym54a]{transform:scale(1.1)}.reading-modal__body[data-astro-cid-3jnym54a]{max-height:60vh;overflow-y:auto}.reading-modal__body__empty-message[data-astro-cid-3jnym54a]{text-align:center;font-style:italic}.reading-modal__body__view-all[data-astro-cid-3jnym54a]{font-size:var(--fs-sm);font-family:var(--ff-mono);display:block;width:fit-content;margin-top:1.5rem;margin-left:auto}.reading-links[data-astro-cid-3jnym54a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.reading-links__item[data-astro-cid-3jnym54a]{font-family:var(--ff-mono);font-size:var(--fs-xs);display:flex;justify-content:space-between;align-items:center;text-transform:lowercase}.reading-links__item[data-astro-cid-3jnym54a]:nth-child(4){opacity:.5}.reading-links__item[data-astro-cid-3jnym54a]:nth-child(5){opacity:.2}.reading-links__item__link[data-astro-cid-3jnym54a]{display:block;text-decoration:underline;position:relative}.reading-links__item__type[data-astro-cid-3jnym54a]{font-size:var(--fs-xxs);text-transform:uppercase;opacity:.5;padding-left:1rem}.top-nav[data-astro-cid-ugcunkw7]{top:0;width:100%;position:fixed;z-index:1000}.top-nav__nav[data-astro-cid-ugcunkw7]{width:clamp(18.5rem,90%,80rem);position:absolute;top:1.5rem;display:flex;justify-content:space-between;align-items:center;transform:translateY(0);transition:transform .3s ease,padding .3s ease,border-color .3s ease;border:1px solid transparent;border-radius:8rem;backdrop-filter:blur(0)}.nav-hidden[data-astro-cid-ugcunkw7] .top-nav__nav[data-astro-cid-ugcunkw7]{transform:translateY(-200%)}.scrolled[data-astro-cid-ugcunkw7] .top-nav__nav[data-astro-cid-ugcunkw7]{padding:.35rem 1.5rem .35rem 1rem;backdrop-filter:blur(.75rem);box-shadow:inset 7.5px 7.5px 15px #99c0ff13,inset 1px 1px 3.5px #c3daff26,inset -7.5px -7.5px 15px #e5fdbe13,inset -1px -1px 22.5px #f7ffe226}.top-nav__list[data-astro-cid-ugcunkw7]{list-style:none;margin:0;padding:0}.top-nav__logo[data-astro-cid-ugcunkw7],.top-nav__right[data-astro-cid-ugcunkw7]{display:flex;align-items:center}.top-nav__logo__link[data-astro-cid-ugcunkw7]{display:inline-block}@media (min-width: 1024px){.top-nav__logo__link[data-astro-cid-ugcunkw7]:hover .top-nav__logo__wordmark[data-astro-cid-ugcunkw7]{transform:translate(0);opacity:1}}.top-nav__logo__icon[data-astro-cid-ugcunkw7]{width:2.5rem;height:2.5rem;transform:translateY(1px)}.top-nav__logo__icon[data-astro-cid-ugcunkw7] path{stroke-dasharray:250;stroke-dashoffset:250;animation:drawPath 2s ease forwards}.top-nav__logo__icon[data-astro-cid-ugcunkw7] path:nth-child(2){animation-delay:.75s}.top-nav__logo__wordmark[data-astro-cid-ugcunkw7]{margin-left:.35rem;display:none}@media (min-width: 1024px){.top-nav__logo__wordmark[data-astro-cid-ugcunkw7]{display:inline-block;transform:translate(-2rem);opacity:0;transition:.3s ease opacity,.5s ease transform}}.top-nav__right[data-astro-cid-ugcunkw7]{position:relative;z-index:1001;gap:.75rem}@keyframes drawPath{0%{stroke-dashoffset:250}to{stroke-dashoffset:0}}.footer[data-astro-cid-sz7xmlte]{margin-top:clamp(6rem,20vw,16rem);padding-bottom:3rem}@media (min-width: 768px){.footer[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between}}.footer__divider[data-astro-cid-sz7xmlte]{width:100%}.footer__tagline[data-astro-cid-sz7xmlte]{margin-top:1.5rem;font-size:clamp(2.25rem,2.25rem + (1vw - .185rem) * 6.1947,4rem);line-height:1}@media (min-width: 768px){.footer__tagline[data-astro-cid-sz7xmlte]{width:70%}}@media (min-width: 1280px){.footer__tagline[data-astro-cid-sz7xmlte]{width:45%}}.footer__social[data-astro-cid-sz7xmlte]{display:flex;gap:1rem;margin-top:1rem}@media (min-width: 768px){.footer__social[data-astro-cid-sz7xmlte]{width:30%;justify-content:flex-end;margin-top:1.75rem}}.footer__copyright[data-astro-cid-sz7xmlte],.footer__rights[data-astro-cid-sz7xmlte]{font-size:var(--fs-xxs)}@media (min-width: 768px){.footer__copyright[data-astro-cid-sz7xmlte],.footer__rights[data-astro-cid-sz7xmlte]{width:70%}}.footer__copyright[data-astro-cid-sz7xmlte]{margin-top:3rem}.footer__rights[data-astro-cid-sz7xmlte]{margin-top:.5rem;line-height:1.4}.footer__rights[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:underline}.boookend[data-astro-cid-sd2v4uw7]{overflow:hidden}:root{--dark: #292F37;--light: #EEF2F7;--blue: #B1F5FF;--focus: rgb(146, 57, 158);--ff-main: "Aspekta", "Helvetica Neue", Helvetica, "Arial", sans-serif;--ff-mono: "Geist Mono", "Courier New", Courier, monospace;--ff-cursive: "Club Tropicana", cursive;--ff-serif: "Source Serif 4", serif;--fs-xxs: .65rem;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-lg: 1.15rem;--bold: 750;--sm: 512px;--md: 768px;--lg: 1024px;--xl: 1200px;--xxl: 1600px;--radius: 4px}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select{margin:0}button{background:none;font-size:100%;outline:none;border:none;cursor:pointer;padding:0;text-align:left}html{box-sizing:border-box}html *,html *:before,html *:after{box-sizing:inherit}img,video{display:block;height:auto;max-width:100%;width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}table td,table th{padding:0}a{text-decoration:none}html:not(.dark){background-color:var(--light);color:var(--dark)}html:not(.dark) #menuButton span{background:var(--dark)}html:not(.dark) .btn:after{background:var(--dark)}html:not(.dark) .theme-fill path{fill:var(--dark)}html:not(.dark) .theme-fill-reverse path{fill:var(--light)}html:not(.dark) .theme-stroke path{stroke:var(--dark)}html:not(.dark) .theme-color{color:var(--dark)}html:not(.dark) .theme-color-reverse{color:var(--light)}html:not(.dark) .theme-border{border-color:var(--dark)}html:not(.dark) .theme-bg{background-color:var(--dark)}html:not(.dark) .theme-bg-reverse{background-color:var(--light)}html:not(.dark) .theme-hide-light{display:none}html:not(.dark) .drawer:after{background:var(--light)}html:not(.dark) .drawer:before{background:var(--dark)}html:not(.dark) .scrolled .top-nav__nav{border-color:var(--dark);background-color:#eef2f780}html:not(.dark) .form__item__input:focus-visible{background:var(--dark)}html:not(.dark) .post-content :not(pre) code{background:#292f371a!important;color:var(--dark)!important}@media (min-width: 1024px){html:not(.dark) .btn:hover{color:var(--light)}html:not(.dark) .portfolio-fts__item__link:hover .portfolio-fts__item__content{background:var(--blue)}html:not(.dark) .portfolio__item__link:hover svg path{fill:var(--dark)}}html.dark{background-color:var(--dark);color:var(--light)}html.dark .btn:hover{color:var(--dark)}html.dark .btn:after{background:var(--light)}html.dark .theme-color{color:var(--light)}html.dark .theme-bg{background-color:var(--light)}html.dark .theme-bg-reverse{background-color:var(--dark)}html.dark .theme-fill path{fill:var(--light)}html.dark .theme-fill-reverse path{fill:var(--dark)}html.dark .theme-stroke path{stroke:var(--light)}html.dark .theme-color-reverse{color:var(--dark)}html.dark .theme-border{border-color:var(--light)}html.dark #menuButton span{background:var(--light)}html.dark .theme-hide-dark{display:none}html.dark .drawer:after{background:var(--dark)}html.dark .drawer:before{background:var(--light)}html.dark .scrolled .top-nav__nav{border-color:var(--light);background-color:#292f3780}html.dark .form__item__input:focus-visible{background:var(--light)}html.dark .post-content :not(pre) code{background:#eef2f71a!important;color:var(--light)!important}@media (min-width: 1024px){html.dark .portfolio-fts__item__content{padding:0;background:transparent!important}html.dark .portfolio__item__link:hover svg path{fill:var(--light)}}:root{--h1-min: 2.5rem;--h1-max: 6rem;--h2-min: 1.5rem;--h2-max: 3rem;--h3-min: 1.3rem;--h3-max: 2.35rem;--h4-min: 1.1rem;--h4-max: 1.8rem}html{font-family:var(--ff-main)}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:var(--bold);min-height:0vw;letter-spacing:-.025em}h1,.h1{line-height:1;font-size:clamp(var(--h1-min),var(--h1-min) + (1vw - .185rem) * 6.1947,var(--h1-max))}h2,.h2{line-height:1.15;font-size:clamp(var(--h2-min),var(--h2-min) + (1vw - .185rem) * 2.6549,var(--h2-max))}h3,.h3{line-height:1.25;font-size:clamp(var(--h3-min),var(--h3-min) + (1vw - .185rem) * 2.6549,var(--h3-max))}h4,.h4{line-height:1.25;font-size:clamp(var(--h4-min),var(--h4-min) + (1vw - .185rem) * 2.6549,var(--h4-max))}a{color:inherit}.text h1,.text .h1{margin-bottom:.2em}.text h2,.text h3,.text h4,.text h5,.text h6,.text .h2,.text .h3,.text .h4,.text .h5,.text .h6{margin-bottom:.4em}.text p{line-height:1.6;letter-spacing:.015em}.text p:not(:last-child){margin-bottom:.5em}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.text ul{list-style:disc;padding-left:2em}.text ul li{margin-bottom:.5em}.mono{font-family:var(--ff-mono)}.cursive{font-family:var(--ff-cursive)}.btn{font-family:var(--ff-cursive);font-size:2.25rem;position:relative;line-height:1;display:inline-block;width:100%;text-align:center;color:var(--dark)}.btn:before,.btn:after{content:"";position:absolute;top:.05em;left:0;height:.8em}.btn:before{width:100%;background:var(--blue);z-index:-2}.btn:hover{color:var(--dark)}@media (min-width: 768px){.btn{width:fit-content;text-align:center;font-size:2.8rem;transition:.3s ease transform,.3s ease color}.btn--left{text-align:left;transform-origin:left center}.btn:after{z-index:-1;width:0;transition:.3s ease width}}@media (min-width: 1024px){.btn:hover{transform:scale(1.1)}.btn:hover:after{width:100%}}.link span{display:inline-block;transition:.3s ease padding}.link--right span{padding-left:.25rem}.link--right:hover span{padding-left:.5rem}.link--left span{padding-right:.25rem}.link--left:hover span{padding-right:.5rem}.highlight-link{display:block;width:fit-content;position:relative;transition:.25s ease color}.highlight-link:before{content:"";position:absolute;top:.2em;left:0;height:1em;width:0;background:var(--blue);z-index:-2;transition:.5s ease width}@media (min-width: 1024px){.highlight-link:hover{color:var(--dark)}.highlight-link:hover:before{width:100%}}.email-btn-wrapper{position:relative;display:inline-block}.email-btn-wrapper__email{font-family:var(--ff-mono);font-size:var(--fs-xs);position:absolute;opacity:.75;left:0;bottom:-1.1em}hr[data-unfurl]{transition:1.25s ease width;width:0}hr.unfurled{width:100%}[data-unfurl-cta]{opacity:0;transform:translateY(1rem);transition:.3s ease opacity,.5s ease transform}[data-unfurl-cta].show-unfurl-cta{opacity:1;transform:translateY(0)}[data-fade]{opacity:0;transition:.3s ease opacity}[data-fade].fade-in{opacity:1}[data-stack]{position:relative;transition:.5s ease opacity;opacity:0}[data-blur],[data-blur-instant]{filter:blur(.75rem);opacity:.5;transition:1.25s ease filter,.75s ease opacity}[data-blur].unblurred,[data-blur-instant].unblurred{filter:blur(0);opacity:1}[data-blur-instant]{filter:blur(.75rem);opacity:.5;animation:unblur 1.25s ease forwards}[data-fade-up]{opacity:0;transform:translateY(2rem);transition:1s ease transform,1s ease opacity}[data-fade-up].fade-up{opacity:1;transform:translateY(0)}[data-bookend-slide]{opacity:0;transform-origin:center bottom;transform:scaleY(.8);transition:1s ease transform,.5s ease opacity}[data-bookend-slide].bookend-slide-up{opacity:1;transform:scaleY(1)}[data-multiple-screenshots] div[class*=col]{transform:scale(.9)}[data-multiple-screenshots] div[class*=col] img{filter:saturate(0)}[data-multiple-screenshots] div[class*=col--2],[data-multiple-screenshots] div[class*=col--2] img{animation-delay:.2s!important}[data-multiple-screenshots] div[class*=col--3],[data-multiple-screenshots] div[class*=col--3] img{animation-delay:.4s!important}[data-multiple-screenshots].grow-color div[class*=col]{animation:grow 1s ease forwards}[data-multiple-screenshots].grow-color div[class*=col] img{animation:color 1s ease forwards}@keyframes unblur{0%{filter:blur(.75rem);opacity:.5}to{filter:blur(0);opacity:1}}@keyframes grow{0%{transform:scale(.9)}to{transform:scale(1)}}@keyframes color{0%{filter:saturate(0)}to{filter:saturate(1)}}@font-face{font-family:Aspekta;src:url(/fonts/Aspekta-400.woff2) format("woff2"),url(/fonts/Aspekta-400.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Aspekta;src:url(/fonts/Aspekta-700.woff2) format("woff2"),url(/fonts/Aspekta-700.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Light.woff2) format("woff2"),url(/fonts/GeistMono-Light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Bold.woff2) format("woff2"),url(/fonts/GeistMono-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Club Tropicana;src:url(/fonts/ClubTropicana-Regular.woff2) format("woff2"),url(/fonts/ClubTropicana-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}.skip-to-main{font-size:var(--fs-sm);position:absolute;left:-9999px;z-index:99999;padding:.65rem 1rem;background-color:var(--focus);color:#fff;opacity:0}.skip-to-main:focus{top:1rem;left:1rem;opacity:1}.container{max-width:clamp(18.5rem,90%,80rem);margin:0 auto;position:relative}*{box-sizing:border-box}a:focus-visible,button:focus-visible{outline:2px solid var(--focus)}.flex{display:flex;flex-wrap:wrap}.flex--aic{align-items:center}hr{margin:.5rem 0;border:none;border-bottom:1px solid var(--light);display:block}hr:not([data-unfurl]){width:100%}.tag{font-family:var(--ff-mono);font-size:var(--fs-xs)}.section{margin-top:clamp(2rem,7vw,5rem);margin-bottom:clamp(2rem,7vw,5rem)}.section--lg{margin-top:clamp(6rem,15vw,10rem);margin-bottom:clamp(6rem,15vw,10rem)}.ads{display:flex;flex-direction:column;gap:2rem;justify-content:center;align-items:center}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.portrait-svg{display:block;width:100%;height:auto;max-width:24rem;margin-inline:auto}@media (max-width: 1023px){.portrait-svg--home{display:none}}@media (min-width: 1024px){.portrait-svg{max-width:100%}}@media (min-width: 1400px){.portrait-svg{margin-top:-2rem}}.portrait-img{display:block;width:fit-content;margin-inline:auto;border-width:1px;border-style:solid;border-radius:var(--radius);padding:1.5rem 1.5rem 0;overflow:hidden;max-width:24rem;background-color:#eef2f7d9}@media (max-width: 1023px){.portrait-img--home{display:none}}@media (min-width: 1024px){.portrait-img{border:none}}.portrait-img__img{margin-bottom:-6rem;transform:translate(-1rem)}.show-lg{display:none}@media (min-width: 1024px){.show-lg{display:block}}@media print{html{background-color:#fff!important}html *{color:#2b2b2b!important}html .top-nav,html .footer,html #main .header-nav{display:none!important}html #main .header__content__divider{margin-top:3rem!important}html #main .header{margin-top:1rem!important}html #main svg path{fill:#2b2b2b}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.header-nav[data-astro-cid-2hp2wczs]{display:none}@media (min-width: 512px){.header-nav[data-astro-cid-2hp2wczs]{display:block}}.header-nav__list[data-astro-cid-2hp2wczs]{list-style:none;padding:0;display:flex;gap:1.5rem}.header-nav__item[data-astro-cid-2hp2wczs]{font-family:var(--ff-mono);font-size:var(--fs-xs)}.header-nav__item__link--active[data-astro-cid-2hp2wczs]{font-weight:var(--bold)}.header[data-astro-cid-3ef6ksr2]{padding-top:clamp(10rem,16vw,12rem)}@media (min-width: 1024px){.header[data-astro-cid-3ef6ksr2]{display:flex}}.header__content[data-astro-cid-3ef6ksr2]{padding:0 0 3rem}@media (min-width: 1024px){.header__content[data-astro-cid-3ef6ksr2]{max-width:60%;flex-basis:60%}}.header__content__title[data-astro-cid-3ef6ksr2]{margin-bottom:.2em}.header__content__subtitle[data-astro-cid-3ef6ksr2]{margin-top:.335em}@media (min-width: 1024px){.header__content__copy--2col[data-astro-cid-3ef6ksr2]{columns:2}}.header__content__divider[data-astro-cid-3ef6ksr2]{margin-top:clamp(3rem,6vw,6rem)!important}.header__content__tags[data-astro-cid-3ef6ksr2]{list-style:none;padding:0;display:flex;flex-wrap:wrap;column-gap:.75rem}.header__content__underline[data-astro-cid-3ef6ksr2]{font-family:var(--ff-mono);font-size:var(--fs-xs)}.header__secondary[data-astro-cid-3ef6ksr2]{width:100%;margin-bottom:2rem}@media (min-width: 1024px){.header__secondary[data-astro-cid-3ef6ksr2]{flex-basis:40%;max-width:40%;padding-left:4rem}.header__secondary[data-astro-cid-3ef6ksr2] svg{max-height:40vw;width:auto}}
