@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:20px auto;padding:16px;display:flex}body{margin:0}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.navbar{width:100%;padding:.25rem 0 .75rem;position:relative}@media (width>=768px){.navbar{padding:.25rem 0}}.navbar__burger-menu{z-index:1;width:36px;height:36px;color:var(--text-h);background-color:var(--bg);border:1px solid var(--border);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:1.25rem;transition:color .3s,background-color .3s,border-color .3s;display:inline-flex;position:absolute;top:0;right:0}.navbar__burger-menu:hover{color:var(--bg);background-color:var(--text-h);border-color:var(--text-h)}.navbar__burger-menu:focus-visible{outline:2px solid var(--text-h);outline-offset:2px}@media (width>=768px){.navbar__burger-menu{display:none}}@media (width<=767.98px){.navbar:not(.navbar--open) .navbar__items>:not(h2,.navbar__items__theme-mode,.navbar__burger-menu){display:none}}.navbar a{font-family:var(--heading);width:auto;margin:0;font-size:.8rem;text-decoration:none;transition:color .3s ease-in-out}.navbar__items{flex-flow:column wrap;justify-content:flex-start;align-items:center;gap:.5rem 1rem;width:100%;display:flex;position:relative}@media (width>=768px){.navbar__items{flex-flow:row;justify-content:flex-end;gap:1.5rem}}@media (width>=1025px){.navbar__items{gap:2rem}}.navbar__items h2{font-family:var(--heading);text-align:left;flex-basis:100%;margin:0;font-size:.8rem;line-height:36px}@media (width>=768px){.navbar__items h2{flex-basis:auto;align-self:flex-start;margin:0 auto 0 20px;line-height:normal}}.navbar__items__theme-mode{width:36px;height:36px;color:var(--text-h);background-color:var(--bg);border:1px solid var(--border);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.05rem;transition:color .3s,background-color .3s,border-color .3s;display:inline-flex}@media (width<=767.98px){.navbar__items__theme-mode{position:absolute;top:0;right:calc(36px + .5rem)}}@media (width>=768px){.navbar__items__theme-mode{width:28px;height:28px;font-size:.9rem}}.navbar__items__theme-mode:hover{color:var(--bg);background-color:var(--text-h);border-color:var(--text-h)}.navbar__items__theme-mode:focus-visible{outline:2px solid var(--text-h);outline-offset:2px}.navbar__items a{letter-spacing:.06em;color:var(--text);cursor:pointer;padding:6px 0;font-size:12px;font-weight:400;line-height:1;display:inline-flex}.navbar__items a:before,.navbar__items a:after{white-space:pre;width:0;color:var(--text-h);transition:width .12s steps(2,end);display:inline-block;overflow:hidden}@media (prefers-reduced-motion:reduce){.navbar__items a:before,.navbar__items a:after{transition:none}}.navbar__items a:before{content:"[ "}.navbar__items a:after{content:" ]"}.navbar__items a:hover,.navbar__items a:focus-visible,.navbar__items a.active,.navbar__items a[aria-current=page]{color:var(--text-h)}.navbar__items a:hover:before,.navbar__items a:hover:after,.navbar__items a:focus-visible:before,.navbar__items a:focus-visible:after,.navbar__items a.active:before,.navbar__items a.active:after,.navbar__items a[aria-current=page]:before,.navbar__items a[aria-current=page]:after{width:2ch}.header-container{flex-direction:column;align-items:stretch;gap:2rem;width:100%;padding:1.5rem 0 2rem;display:flex}@media (width>=768px){.header-container{padding:2rem 12px 2.5rem}}@media (width>=1025px){.header-container{flex-direction:row;justify-content:center;align-items:center;gap:.25rem;height:400px;padding:12px}}.header-container .header-left{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}@media (width>=1025px){.header-container .header-left{width:66%}}.header-container .header-left__title{margin-bottom:.5em;font-size:.8rem}.header-container .header-left__name{color:var(--text-h);margin-bottom:.75em;font-size:1.75rem;font-weight:700;line-height:1.1}@media (width>=480px){.header-container .header-left__name{font-size:2rem}}.header-container .header-left__description{text-align:left;max-width:60ch}@media (width>=1025px){.header-container .header-left__description{margin-right:2em}}.header-container .header-left__buttons{margin-top:1.25rem}@media (width>=1025px){.header-container .header-left__buttons{margin-top:1rem}}.header-container .header-left__buttons a{min-width:0;height:40px;font-family:var(--heading);justify-content:center;align-items:center;padding:.2rem 1rem;font-size:.75rem;text-decoration:none;transition:all .3s;display:flex}@media (width>=1025px){.header-container .header-left__buttons a{height:30px;padding:.2rem .5rem}}.header-container .header-left__buttons__view-projects{background-color:var(--text-h);color:var(--bg);border:1px solid var(--text-h);text-transform:uppercase}.header-container .header-left__buttons__view-projects:hover{background-color:var(--bg);color:var(--text-h);transition:all .5s}.header-container .header-right{text-align:left;gap:.75rem;width:100%;display:grid}@media (width>=768px){.header-container .header-right{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem}}@media (width>=1025px){.header-container .header-right{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:0;width:33%;height:100%;margin-bottom:4em;padding-left:.75em;display:flex}}.header-container .header-right__info-line{border-left:.15em solid var(--text-h);align-items:center;gap:1em;width:100%;padding-left:1em;display:flex}@media (width>=1025px){.header-container .header-right__info-line{gap:2em}}.header-container .header-right__info-line p{font-family:var(--heading);color:var(--text);font-size:.7rem;text-decoration:none}.header-container .header-right__info-line a,.header-container .header-right__info-line a:visited,.header-container .header-right__info-line a:link,.header-container .header-right__info-line a:hover,.header-container .header-right__info-line a:active{font-family:var(--heading);color:var(--text-h);align-items:center;margin-right:1em;font-size:.7rem;text-decoration:none;display:inline-flex}.header-container .header-right__info-line__title{text-transform:uppercase;flex-shrink:0;width:4.5rem}@media (width>=1025px){.header-container .header-right__info-line__title{width:10%}}.header-container .header-right__info-line__value{overflow-wrap:anywhere;min-width:0;font-weight:600}.header-container .header-right__info-line__links{flex-wrap:wrap;align-items:center;width:100%;display:flex}.projects-section{margin-bottom:2em}.projects-container{text-align:left;grid-template-columns:minmax(0,1fr);gap:.75rem;display:grid}@media (width>=480px){.projects-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.projects-container{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1025px){.projects-container{flex-wrap:wrap;justify-content:center;display:flex}}.projects-container .project-card{background-color:var(--bg);border:1px solid var(--text);width:100%;box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;display:flex}@media (width>=1025px){.projects-container .project-card{width:260px}}.projects-container .project-card img{object-fit:cover;filter:grayscale(50%);width:100%;height:0;margin-bottom:.15em}.projects-container .project-card__content{flex-direction:column;flex:1;width:100%;display:flex}.projects-container .project-card .project-card-header{padding:0 .5rem}.projects-container .project-card .project-card-header h3{color:var(--text-h);margin-bottom:.75em;font-size:.8rem}.projects-container .project-card .project-card-header p{color:var(--text-h);margin-bottom:.75rem;font-size:.7rem;line-height:1.5em}.projects-container .project-card .project-card-status{justify-content:space-between;align-items:center;width:100%;padding:.5rem .5rem 0;display:flex}@media (width>=1025px){.projects-container .project-card .project-card-status{padding:0 .5rem}}.projects-container .project-card .project-card-status p{font-size:.8rem}.projects-container .project-card .project-card-status__value{text-transform:uppercase;justify-content:center;align-items:center;height:18px;padding:0 .3rem;font-size:.7rem;display:flex}@media (width>=1025px){.projects-container .project-card .project-card-status__value{height:15px;padding:0 .2rem;font-size:.6rem}}.projects-container .project-card .project-card-status__live{letter-spacing:1.5px;color:var(--bg);background-color:var(--text-h);font-weight:500}.projects-container .project-card .project-card-status__archived{border:1px solid var(--text);color:var(--text);background-color:var(--bg);font-weight:300}.projects-container .project-card .project-card-status__active-development{border:1px solid var(--text);color:var(--text-h);background-color:var(--bg);font-weight:300}.projects-container .project-card .project-card-status__planned{border:1px dashed var(--text);color:var(--text);opacity:.75;background-color:#0000;font-weight:300}.projects-container .project-card .project-card-tech-stack{flex-wrap:wrap;justify-content:flex-start;gap:.2rem;padding:0 .5rem;display:flex}.projects-container .project-card .project-card-tech-stack__item{border:1px solid var(--border);background-color:var(--bg);height:24px;font-family:var(--heading);align-items:center;gap:.25rem;padding:0 .3rem;display:flex}@media (width>=1025px){.projects-container .project-card .project-card-tech-stack__item{height:20px;padding:0 .2rem}}.projects-container .project-card .project-card-tech-stack__item__logo{border:1px solid var(--text);flex-shrink:0;width:16px;height:16px}@media (width>=1025px){.projects-container .project-card .project-card-tech-stack__item__logo{width:14px;height:14px}}.projects-container .project-card .project-card-tech-stack__item__name{color:var(--text-h);font-size:.7rem}@media (width>=1025px){.projects-container .project-card .project-card-tech-stack__item__name{font-size:.55rem}}.projects-container .project-card .project-card-links{align-items:flex-end;gap:.5rem;width:100%;margin:auto 0 .5rem;padding:.75rem .5rem 0;display:flex}@media (width>=1025px){.projects-container .project-card .project-card-links{height:35px;padding:0 .5rem}}.projects-container .project-card .project-card-links a{min-width:0;height:40px;font-family:var(--heading);justify-content:center;align-items:center;padding:.2rem .5rem;font-size:.75rem;text-decoration:none;transition:all .3s;display:flex}@media (width>=1025px){.projects-container .project-card .project-card-links a{height:25px;font-size:.6rem}}.projects-container .project-card .project-card-links__btn-website{background-color:var(--bg);color:var(--text-h);border:1px solid var(--text-h);gap:.4rem}.projects-container .project-card .project-card-links__btn-website:hover{background-color:var(--text-h);color:var(--border);transition:all .5s}.projects-container .project-card .project-card-links__btn-website-live{flex:1 1 0}.projects-container .project-card .project-card-links__live-dot{background-color:#2ecc71;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.5s infinite live-dot-pulse;box-shadow:0 0 #2ecc71b3}.projects-container .project-card .project-card-links__btn-more-info{background-color:var(--text-h);color:var(--bg);border:1px solid var(--text-h);flex:2 1 0}.projects-container .project-card .project-card-links__btn-more-info:hover{background-color:var(--bg);color:var(--text-h);transition:all .5s}@keyframes live-dot-pulse{0%{box-shadow:0 0 #2ecc71b3}70%{box-shadow:0 0 0 6px #2ecc7100}to{box-shadow:0 0 #2ecc7100}}#root:has(.project-info){max-width:1126px;min-height:100svh;padding:0}.project-info{text-align:left;flex-direction:column;flex:1;width:100%;min-height:100svh;margin:0;display:flex}.project-info>:last-child{flex:1}.project-info__block{background-color:var(--bg);padding:2rem 1rem 2.25rem}@media (width>=768px){.project-info__block{padding:2.25rem 2.5rem 2.5rem}}.project-info__block--hero{padding-top:1.5rem}@media (width>=768px){.project-info__block--hero{padding-top:1.6rem}}.project-info__block--flush{padding:0}@media (width>=768px){.project-info__block--flush{padding:0}}.project-info__topbar{font-family:var(--mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:2rem;font-size:.65rem;line-height:1;display:flex}.project-info__back{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500;text-decoration:none;transition:color .3s}.project-info__back:hover{color:var(--text-h)}.project-info__breadcrumb{color:var(--text)}.project-info__eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text);font-size:.6rem;font-weight:500;line-height:1}.project-info__eyebrow--spaced{margin-bottom:1.35rem;display:block}.project-info__eyebrow-row{align-items:center;gap:.75rem;display:flex}.project-info__badge{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--text-h);padding:4px 6px;font-size:.5rem;font-weight:500;line-height:1}.project-info__badge--live{color:var(--bg);background-color:var(--text-h)}.project-info__badge--active-development{color:#009514;border-color:#009514}.project-info__badge--archived{color:var(--text);border-color:var(--text)}.project-info__badge--planned{color:var(--text);border:1px dashed var(--text)}.project-info__hero{gap:2rem;display:grid}@media (width>=768px){.project-info__hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:2.5rem}}.project-info__intro{flex-direction:column;gap:1rem;min-width:0;display:flex}.project-info__title{font-family:var(--sans);letter-spacing:-.03em;color:var(--text-h);overflow-wrap:anywhere;margin:0;font-size:1.9rem;font-weight:600;line-height:1.02}@media (width>=480px){.project-info__title{font-size:2.25rem}}@media (width>=768px){.project-info__title{font-size:2.9rem}}.project-info__lead{max-width:52ch;color:var(--text-h);opacity:.75;text-wrap:pretty;font-size:.95rem;line-height:1.55}.project-info__actions{flex-wrap:wrap;gap:.6rem;margin-top:.35rem;display:flex}.project-info__btn{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-h);background-color:var(--bg);border:1px solid var(--text-h);align-items:center;padding:11px 16px;font-size:.6rem;font-weight:500;line-height:1;text-decoration:none;transition:all .3s;display:inline-flex}.project-info__btn:hover,.project-info__btn--primary{color:var(--bg);background-color:var(--text-h)}.project-info__btn--primary:hover{color:var(--text-h);background-color:var(--bg)}.project-info__meta{font-family:var(--mono);border-top:1px solid var(--text-h);grid-template-columns:auto 1fr;gap:10px 16px;margin:0;padding-top:1.25rem;font-size:.6rem;line-height:1.4;display:grid}@media (width>=768px){.project-info__meta{border-top:none;border-left:1px solid var(--text-h);padding:0 0 0 1.25rem}}.project-info__meta-row{display:contents}.project-info__meta-row dt{color:var(--text);text-transform:uppercase}.project-info__meta-row dd{color:var(--text-h);margin:0}.project-info__screenshot{aspect-ratio:16/8;object-fit:cover;width:100%;display:block}.project-info__placeholder{background:repeating-linear-gradient(135deg, var(--code-bg) 0 8px, var(--bg) 8px 16px);aspect-ratio:16/8;place-items:center;width:100%;display:grid}.project-info__placeholder span{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text);letter-spacing:.14em;font-size:.6rem;font-weight:400;line-height:1}.project-info__columns{gap:2.5rem;display:grid}@media (width>=768px){.project-info__columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.project-info__columns--single{grid-template-columns:minmax(0,1fr)}}.project-info__text{flex-direction:column;gap:.75rem;display:flex}.project-info__h2{font-family:var(--sans);letter-spacing:-.01em;color:var(--text-h);margin:0;font-size:1.2rem;font-weight:600;line-height:1.2}.project-info__h2--large{letter-spacing:-.02em;font-size:1.4rem;line-height:1}@media (width>=768px){.project-info__h2--large{font-size:1.65rem}}.project-info__body{max-width:60ch;color:var(--text-h);opacity:.75;text-wrap:pretty;font-size:.85rem;line-height:1.65}.project-info__body--wide{max-width:75ch}.project-info__heading{border-bottom:1px solid var(--text-h);flex-direction:column;gap:.4rem;padding-bottom:.8rem;display:flex}.project-info__rows{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-info__rows>*{border-bottom:1px solid var(--border);padding:1rem 0}.project-info__rows>:last-child{border-bottom-color:var(--text-h)}.project-info__rows h3{font-family:var(--sans);color:var(--text-h);margin:0;font-size:.85rem;font-weight:600;line-height:1.4}.project-info__feature{grid-template-columns:2rem minmax(0,1fr);gap:.4rem 1rem;display:grid}.project-info__feature p{color:var(--text-h);opacity:.75;text-wrap:pretty;grid-column:2;font-size:.8rem;line-height:1.6}@media (width>=768px){.project-info__feature{grid-template-columns:48px minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem}.project-info__feature p{grid-column:auto}}.project-info__feature-index{font-family:var(--mono);color:var(--text);font-size:.6rem;font-weight:500;line-height:1.6}.project-info__diagram{aspect-ratio:4/3;object-fit:contain;border:1px solid var(--text-h);width:100%;display:block}.project-info__stack-row{gap:.6rem;display:grid}@media (width>=768px){.project-info__stack-row{grid-template-columns:160px minmax(0,1fr);gap:1.5rem}}.project-info__chips{flex-wrap:wrap;gap:6px;display:flex}.project-info__chip{font-family:var(--mono);color:var(--text-h);background-color:var(--bg);border:1px solid var(--border);align-items:center;gap:5px;padding:3px 7px 3px 4px;font-size:.55rem;line-height:1;display:inline-flex}.project-info__chip-icon{object-fit:contain;filter:grayscale()contrast(1.2);width:15px;height:15px;display:block}.project-info__chip-mono{border:1px solid var(--text-h);place-items:center;width:15px;height:15px;font-size:7px;font-weight:500;display:grid}.project-info__gallery{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.5rem;display:grid}.project-info__gallery figure{flex-direction:column;gap:8px;margin:0;display:flex}.project-info__gallery img,.project-info__gallery .project-info__placeholder{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--text-h);width:100%}.project-info__gallery figcaption{font-family:var(--mono);color:var(--text);font-size:.6rem;line-height:1.4}.project-info__pager{align-content:start;display:grid}@media (width>=768px){.project-info__pager{grid-template-columns:1fr 1fr}}.project-info__pager-link{flex-direction:column;gap:8px;padding:1.75rem 1rem;text-decoration:none;transition:background-color .3s;display:flex}@media (width>=768px){.project-info__pager-link{padding:1.75rem 2.5rem}}.project-info__pager-link:hover{background-color:var(--code-bg)}.project-info__pager-link--next{text-align:right;border-top:1px solid var(--text-h);align-items:flex-end}@media (width>=768px){.project-info__pager-link--next{border-top:none;border-left:1px solid var(--text-h)}}.project-info__pager-title{font-family:var(--sans);color:var(--text-h);font-size:1.05rem;font-weight:600;line-height:1.2}.techstack{flex-direction:column;width:100%;margin-bottom:2em;display:flex}.techstack__boxes{width:100%;display:grid}.techstack__box{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr);gap:.5rem;width:100%;padding:.75em 0;display:grid}@media (width>=768px){.techstack__box{grid-template-columns:160px minmax(0,1fr);gap:0;padding:.75em}}.techstack__box:last-child{border:0}.techstack__box__category{text-align:left;font-family:var(--sans);color:var(--text-h);font-size:.8rem;font-weight:500}.techstack__box__category__index{font-size:.7rem;font-weight:300;font-family:var(--heading);color:var(--text);margin-right:15px}.techstack__box__items{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:.25rem;display:grid}@media (width>=480px){.techstack__box__items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=768px){.techstack__box__items{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:0}}@media (width>=1025px){.techstack__box__items{grid-template-columns:repeat(5,minmax(0,1fr))}}.techstack__box__item{align-items:center;max-width:100%;min-height:1.5em;margin:.2em .3em 0 0;display:flex}@media (width>=768px){.techstack__box__item{width:fit-content;margin:.2em .3em 0}}.techstack__box__item p{text-align:left;min-width:0;color:var(--text);overflow-wrap:anywhere;margin-right:.2em;font-size:.7rem;display:block}.techstack__box__item__mono{width:1rem;height:1rem;font-family:var(--mono);color:var(--text-h);border:1px solid var(--text-h);flex-shrink:0;place-items:center;margin:0 .5em 0 0;font-size:.45rem;font-weight:500;line-height:1;display:grid}@media (width>=768px){.techstack__box__item__mono{margin:0 .4em 0 .2em}}.techstack__box__item img{filter:grayscale(80%);border-radius:.25em;flex-shrink:0;width:1em;height:1em;margin:0 .4em 0 0}@media (width>=768px){.techstack__box__item img{margin:0 .2em}}.contact{flex-direction:column;align-items:stretch;gap:2em;width:100%;margin-bottom:2em;display:flex}@media (width>=768px){.contact{flex-direction:row;align-items:center}}.contact__left{justify-content:flex-start;width:100%;display:flex}.contact__right{justify-content:flex-start;align-items:center;width:100%;display:flex}.contact__form{flex-direction:column;justify-content:flex-start;align-items:stretch;row-gap:.5em;width:100%;display:flex}@media (width>=768px){.contact__form{align-items:flex-end;min-height:25dvh}}.contact__form__group{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-start;width:100%;margin-bottom:.5em;display:flex}.contact__form__group label{color:var(--text-h);text-align:left;-webkit-user-select:none;user-select:none;margin:0 0 .25em;font-size:.8rem}.contact__form__group input,.contact__form__group textarea{border:2px solid var(--border);background-color:rgba(from var(--bg) r g b/.5);width:100%;color:var(--text-h);resize:vertical;flex:1;padding:.5em .6em;font-family:inherit;font-size:1rem}@media (width>=768px){.contact__form__group input,.contact__form__group textarea{padding:.4em .5em;font-size:.8rem}}.contact__form__group input:focus,.contact__form__group textarea:focus{border-color:var(--text-h);box-shadow:0 0 5px rgba(from var(--text-h) r g b/.5);outline:none}.contact__form__group textarea{min-height:5em;max-height:30em}.contact__form__message{text-align:left;font-size:.75rem}.contact__form__button{width:100%;min-height:44px;font-family:var(--heading);color:var(--bg);background-color:var(--text-h);border:1px solid var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.5em 1.5em;font-size:.8rem;transition:background-color .3s ease-in-out}@media (width>=768px){.contact__form__button{width:auto;min-height:0;margin:0 auto}}.contact__info{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.contact__info__row{align-items:center;gap:1em;width:100%;margin-bottom:.5em;display:flex}.contact__info__row__title{width:5.5rem;font-family:var(--heading);color:var(--text);text-align:left;flex-shrink:0;font-size:.7rem}@media (width>=768px){.contact__info__row__title{width:15%;min-width:5.5rem}}.contact__info__row__value{min-width:0;font-family:var(--heading);color:var(--text-h);overflow-wrap:anywhere;font-size:.7rem;text-decoration:none}.contact__info__row a{align-items:center;font-weight:700;display:flex}.footer{font-family:var(--heading);border-top:1px solid var(--text);flex-wrap:wrap;gap:.25em;margin-top:auto;padding-top:.75em;font-size:.7rem;display:flex}@media (width>=768px){.footer{font-size:.8rem}}.footer__name{margin-left:.5em}.back-to-top{z-index:10;width:36px;height:36px;color:var(--text-h);background-color:var(--bg);border:1px solid var(--border);cursor:pointer;opacity:0;visibility:hidden;justify-content:center;align-items:center;padding:0;font-size:1.25rem;transition:opacity .3s,transform .3s,visibility .3s,color .3s,background-color .3s,border-color .3s;display:inline-flex;position:fixed;bottom:16px;right:16px;transform:translateY(8px)}@media (width>=768px){.back-to-top{width:40px;height:40px;bottom:24px;right:24px}}.back-to-top--visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{color:var(--bg);background-color:var(--text-h);border-color:var(--text-h)}.back-to-top:focus-visible{outline:2px solid var(--text-h);outline-offset:2px}@media (prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}}*{box-sizing:border-box;scroll-behavior:smooth;margin:0;padding:0}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#009514;--accent-bg:#aa3bff1a;--accent-border:#00951480;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:"IBM Plex Sans", ui-monospace, Consolas, monospace;--heading:"JetBrains Mono", ui-monospace, Consolas, monospace;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:16px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width>=1025px){:root{font-size:18px}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.theme-img--dark{display:none}:root[data-theme=dark]{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#009514;--accent-bg:#c084fc26;--accent-border:#00951480;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .theme-img--light{display:none}:root[data-theme=dark] .theme-img--dark{display:revert}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#009514;--accent-bg:#c084fc26;--accent-border:#00951480;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:not([data-theme=light]) .theme-img--light{display:none}:root:not([data-theme=light]) .theme-img--dark{display:revert}}#root{border:1px solid var(--border);flex-direction:column;width:100%;max-width:1126px;min-height:100svh;margin:0 auto;padding:12px;display:flex}@media (width>=768px){#root{margin:20px auto;padding:16px}}body{background:var(--bg);margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-.5px;margin:20px 0;font-size:32px}@media (width>=768px){h1{letter-spacing:-1.2px;font-size:44px}}@media (width>=1025px){h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}}.separator{background-color:var(--text);width:100%;height:1px;margin-bottom:1rem;display:block}h2{font-family:var(--heading);letter-spacing:-.24px;text-align:left;margin:1rem 0;font-size:20px;line-height:118%}@media (width>=1025px){h2{font-size:24px}}h3{font-family:var(--heading);letter-spacing:-.2px;font-size:18px;font-weight:700;line-height:118%}@media (width>=1025px){h3{font-size:1.25rem}}p{font-family:var(--sans);margin:0;font-size:1rem}
