.Heading-module__6iQBUG__heading{font-family:var(--typography-font-family);letter-spacing:var(--typography-letter-spacing-heading);font-weight:500;line-height:var(--typography-line-height-heading);margin:0;padding:0}.Heading-module__6iQBUG__h1{font-size:var(--typography-size-heading-3xl)}.Heading-module__6iQBUG__h2{font-size:var(--typography-size-heading-2xl)}.Heading-module__6iQBUG__h3{font-size:var(--typography-size-heading-xl)}.Heading-module__6iQBUG__h4{font-size:var(--typography-size-heading-lg)}.Heading-module__6iQBUG__h5{font-size:var(--typography-size-heading-md)}.Heading-module__6iQBUG__h6{font-size:var(--typography-size-heading-sm)}
.Paragraph-module__VFgm1G__paragraph{font-family:var(--typography-font-family);letter-spacing:var(--typography-letter-spacing-body);font-weight:400;line-height:var(--typography-line-height-body);margin:0;padding:0}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__compact{line-height:var(--typography-line-height-body-compact)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__xs{font-size:var(--typography-size-body-xs)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__sm{font-size:var(--typography-size-body-sm)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__md{font-size:var(--typography-size-body-md)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__lg{font-size:var(--typography-size-body-lg)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__xl{font-size:var(--typography-size-body-xl)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__xxl{font-size:var(--typography-size-body-2xl)}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__start{text-align:start}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__center{text-align:center}.Paragraph-module__VFgm1G__paragraph.Paragraph-module__VFgm1G__end{text-align:end}
.AboutMe-module__VmwF-G__main{flex-direction:column;align-items:center;gap:12px;display:flex}@media (min-width:768px){.AboutMe-module__VmwF-G__main{flex-direction:row}}.AboutMe-module__VmwF-G__headshot{aspect-ratio:1;border-radius:50%;flex:1 0 auto;width:100%;max-width:250px;overflow:hidden}.AboutMe-module__VmwF-G__headshotImage{object-fit:contain}.AboutMe-module__VmwF-G__content{color:var(--text-primary)}
.Icon-module__jl2mdG__icon{display:flex}.Icon-module__jl2mdG__icon>svg{max-width:100%;display:inline-block}.Icon-module__jl2mdG__negative{color:var(--icon-negative)}.Icon-module__jl2mdG__positive{color:var(--icon-positive)}.Icon-module__jl2mdG__primary{color:var(--icon-primary)}.Icon-module__jl2mdG__inverse{color:var(--icon-inverse)}.Icon-module__jl2mdG__warning{color:var(--icon-warning)}.Icon-module__jl2mdG__action{color:var(--icon-action)}.Icon-module__jl2mdG__xxs{height:var(--icon-2xs-size);min-height:var(--icon-2xs-size);min-width:var(--icon-2xs-size);width:var(--icon-2xs-size)}.Icon-module__jl2mdG__xs{height:var(--icon-xs-size);min-height:var(--icon-xs-size);min-width:var(--icon-xs-size);width:var(--icon-xs-size)}.Icon-module__jl2mdG__sm{height:var(--icon-sm-size);min-height:var(--icon-sm-size);min-width:var(--icon-sm-size);width:var(--icon-sm-size)}.Icon-module__jl2mdG__md{height:var(--icon-md-size);min-height:var(--icon-md-size);min-width:var(--icon-md-size);width:var(--icon-md-size)}.Icon-module__jl2mdG__lg{height:var(--icon-lg-size);min-height:var(--icon-lg-size);min-width:var(--icon-lg-size);width:var(--icon-lg-size)}.Icon-module__jl2mdG__xl{height:var(--icon-xl-size);min-height:var(--icon-xl-size);min-width:var(--icon-xl-size);width:var(--icon-xl-size)}.Icon-module__jl2mdG__xxl{height:var(--icon-xxl-size);min-height:var(--icon-xxl-size);min-width:var(--icon-xxl-size);width:var(--icon-xxl-size)}.Icon-module__jl2mdG__skeleton{border-radius:var(--icon-skeleton-border-radius);cursor:progress}
.Tile-module__EU6hmq__tile{background-color:var(--surface-primary);box-shadow:0 .125rem .5rem 0 var(--shadow-color);border-radius:8px;flex-direction:column;flex-grow:1;padding:24px;display:flex;overflow:hidden}.Tile-module__EU6hmq__tile .Tile-module__EU6hmq__image{width:calc(100% + 48px);margin:-24px -24px 24px}.Tile-module__EU6hmq__cover{object-fit:cover}.Tile-module__EU6hmq__contain{object-fit:contain}.Tile-module__EU6hmq__tile .Tile-module__EU6hmq__content{flex-direction:column;flex-grow:1;gap:8px;display:flex}
.TileGrid-module__JEk18q__tileGrid{grid-gap:16px;grid-template-columns:repeat(auto-fill,minmax(min-content,314px));grid-auto-rows:auto;justify-content:center;gap:16px;display:grid}@media (min-width:768px){.TileGrid-module__JEk18q__tileGrid{justify-content:unset}}
.Label-module__fkc-hG__label{font-family:var(--typography-font-family);letter-spacing:var(--typography-letter-spacing-label);line-height:var(--typography-line-height-label);margin:0;padding:0}.Label-module__fkc-hG__label.Label-module__fkc-hG__compact{line-height:var(--typography-line-height-label-compact)}.Label-module__fkc-hG__label.Label-module__fkc-hG__medium{font-weight:500}.Label-module__fkc-hG__label.Label-module__fkc-hG__bold{font-weight:600}.Label-module__fkc-hG__label.Label-module__fkc-hG__xs{font-size:var(--typography-size-label-xs)}.Label-module__fkc-hG__label.Label-module__fkc-hG__sm{font-size:var(--typography-size-label-sm)}.Label-module__fkc-hG__label.Label-module__fkc-hG__md{font-size:var(--typography-size-label-md)}.Label-module__fkc-hG__label.Label-module__fkc-hG__lg{font-size:var(--typography-size-label-lg)}.Label-module__fkc-hG__label.Label-module__fkc-hG__xl{font-size:var(--typography-size-label-xl)}.Label-module__fkc-hG__label.Label-module__fkc-hG__inverse{color:var(--text-inverse)}.Label-module__fkc-hG__label.Label-module__fkc-hG__positive{color:var(--text-positive)}
.Text-module__Bfv7Pq__span{font-family:var(--typography-font-family);letter-spacing:var(--typography-letter-spacing-body);line-height:var(--typography-line-height-body);margin:0;padding:0}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__compact{line-height:var(--typography-line-height-body-compact)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__regular{font-weight:400}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__medium{font-weight:500}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__xs{font-size:var(--typography-size-body-xs)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__sm{font-size:var(--typography-size-body-sm)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__md{font-size:var(--typography-size-body-md)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__lg{font-size:var(--typography-size-body-lg)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__xl{font-size:var(--typography-size-body-xl)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__xxl{font-size:var(--typography-size-body-2xl)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__secondary{color:var(--text-secondary)}.Text-module__Bfv7Pq__span.Text-module__Bfv7Pq__inverse{color:var(--text-inverse)}
.ElementList-module__H5hJ5q__elementList{flex-direction:column;gap:12px;margin:0;padding:0;display:flex}.ElementList-module__H5hJ5q__elementListItem{align-items:center;gap:12px;padding:8px;display:flex}.ElementList-module__H5hJ5q__elementListItem .ElementList-module__H5hJ5q__content{flex-direction:column;display:flex}
.Logo-module__zh8txq__logo{background:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.Logo-module__zh8txq__lg{height:var(--icon-lg-size);width:var(--icon-lg-size)}.Logo-module__zh8txq__xl{height:var(--icon-xl-size);width:var(--icon-xl-size)}.Logo-module__zh8txq__image{object-fit:contain;width:100%;height:100%}
.ResumeEntry-module__8mHHCa__entry{flex-direction:column;gap:12px;display:flex}.ResumeEntry-module__8mHHCa__heading{align-items:center;gap:20px;display:flex}.ResumeEntry-module__8mHHCa__content{flex-direction:column;display:flex}
.ThemeToggle-module__3b5zuq__toggle{background-color:color-mix(in lab,var(--surface-inverse),#fff 8%);border:1px solid color-mix(in lab,var(--surface-inverse),#fff 25%);border-radius:var(--border-radius-pill);color:var(--text-inverse);cursor:pointer;font:inherit;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:500;display:inline-flex}.ThemeToggle-module__3b5zuq__toggle:hover{background-color:color-mix(in lab,var(--surface-inverse),#fff 16%)}.ThemeToggle-module__3b5zuq__toggle:focus-visible{outline:var(--border-width-strong) solid var(--border-focus);outline-offset:2px}.ThemeToggle-module__3b5zuq__dot{background-color:#f5a623;border-radius:50%;width:10px;height:10px;box-shadow:0 0 8px #f5a623}.ThemeToggle-module__3b5zuq__dark{display:none}:root[data-theme=DARK] .ThemeToggle-module__3b5zuq__light{display:none}:root[data-theme=DARK] .ThemeToggle-module__3b5zuq__dark{display:inline}:root[data-theme=DARK] .ThemeToggle-module__3b5zuq__dot{background-color:#83b692;box-shadow:0 0 8px #83b692}@media (max-width:600px){.ThemeToggle-module__3b5zuq__toggle{gap:6px;padding:4px 10px;font-size:12px}.ThemeToggle-module__3b5zuq__dot{width:8px;height:8px}}
.Header-module__Af2_WG__appBar{--surface-inverse:#1c2735;--text-inverse:#fbf7fb;--icon-inverse:#fbf7fb;background:radial-gradient(circle farthest-side at 0 50%,var(--surface-inverse) 23.5%,#f0a61100 0) 21px 30px,radial-gradient(circle farthest-side at 0 50%,color-mix(in lab,var(--surface-inverse),#fff 10%) 24%,#f0a61100 0) 19px 30px,linear-gradient(var(--surface-inverse) 14%,#f0a61100 0,#f0a61100 85%,var(--surface-inverse) 0) 0 0,linear-gradient(150deg,var(--surface-inverse) 24%,color-mix(in lab,var(--surface-inverse),#fff 10%) 0,color-mix(in lab,var(--surface-inverse),#fff 10%) 26%,#f0a61100 0,#f0a61100 74%,color-mix(in lab,var(--surface-inverse),#fff 10%) 0,color-mix(in lab,var(--surface-inverse),#fff 10%) 76%,var(--surface-inverse) 0) 0 0,linear-gradient(30deg,var(--surface-inverse) 24%,color-mix(in lab,var(--surface-inverse),#fff 10%) 0,color-mix(in lab,var(--surface-inverse),#fff 10%) 26%,#f0a61100 0,#f0a61100 74%,color-mix(in lab,var(--surface-inverse),#fff 10%) 0,color-mix(in lab,var(--surface-inverse),#fff 10%) 76%,var(--surface-inverse) 0) 0 0,linear-gradient(90deg,color-mix(in lab,var(--surface-inverse),#fff 10%) 2%,var(--surface-inverse) 0,var(--surface-inverse) 98%,color-mix(in lab,var(--surface-inverse),#fff 10%) 0) 0 0 var(--surface-inverse);background-size:40px 60px;flex-grow:1;justify-content:center;align-items:center;height:80px;max-height:80px;display:flex}.Header-module__Af2_WG__appBar.Header-module__Af2_WG__fixed{box-shadow:0 .0625rem .25rem 0 var(--shadow-color);position:fixed;top:0;left:0;right:0}.Header-module__Af2_WG__appBar .Header-module__Af2_WG__main{max-width:var(--site-max-width);flex-grow:1;justify-content:space-between;align-items:center;padding:8px 24px;display:flex;position:relative}.Header-module__Af2_WG__appBar .Header-module__Af2_WG__main .Header-module__Af2_WG__content{align-items:center;gap:16px;display:flex}.Header-module__Af2_WG__navigation{display:flex}.Header-module__Af2_WG__navigation>.Header-module__Af2_WG__list{align-items:center;gap:8px;margin:0;padding:0;list-style-type:none;display:flex}.Header-module__Af2_WG__navigationItem{padding:var(--space-component-sm) var(--space-component-md);cursor:pointer;border-radius:4px;align-items:center;gap:8px;text-decoration:none;display:flex;position:relative}.Header-module__Af2_WG__navigationItem:hover{background-color:color-mix(in lab,var(--surface-inverse),#fff 10%)}.Header-module__Af2_WG__navigationItem:active{background-color:color-mix(in lab,var(--surface-inverse),#fff 20%)}@media (max-width:600px){.Header-module__Af2_WG__appBar .Header-module__Af2_WG__main{flex-direction:column;justify-content:center;gap:2px;padding:6px 12px}.Header-module__Af2_WG__navigation>.Header-module__Af2_WG__list{gap:0}.Header-module__Af2_WG__navigationItem{padding:4px 6px}.Header-module__Af2_WG__navigationItem label{font-size:14px}}.Header-module__Af2_WG__navigationItem:focus{outline:none;outline:var(--border-width-strong) solid var(--border-focus);outline-offset:calc(var(--border-width-strong)*-1);z-index:1}.Header-module__Af2_WG__right{align-items:center;gap:12px;display:flex}@media (max-width:600px){.Header-module__Af2_WG__right .Header-module__Af2_WG__toggle{position:absolute;top:8px;right:12px}}
.Section-module__V1nQxq__section{flex-direction:column;gap:12px;display:flex}
.Button-module__3dJGfa__button{border-radius:var(--btn-border-radius);cursor:pointer;font-family:var(--typography-font-family);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);letter-spacing:1px;padding:var(--btn-padding);text-align:center;border:0;line-height:1.3;text-decoration:none;display:inline-block}.Button-module__3dJGfa__button.Button-module__3dJGfa__primary{background-color:var(--btn-primary-bg-color);color:var(--btn-primary-color)}.Button-module__3dJGfa__button.Button-module__3dJGfa__primary:hover{background-color:color-mix(in lab,var(--btn-primary-bg-color),#fff 10%);box-shadow:0 .125rem .5rem 0 var(--border-primary)}.Button-module__3dJGfa__button.Button-module__3dJGfa__primary:active{background-color:color-mix(in lab,var(--btn-primary-bg-color),#fff 20%);box-shadow:0 .0625rem .25rem 0 var(--border-primary)}.Button-module__3dJGfa__button.Button-module__3dJGfa__primary:focus{outline:none;outline:var(--border-width-strong) solid var(--border-focus);outline-offset:calc(var(--border-width-strong)*-1);z-index:1}.Button-module__3dJGfa__button.Button-module__3dJGfa__secondary{background-color:var(--btn-secondary-bg-color);border:var(--btn-secondary-border);color:var(--btn-secondary-color)}.Button-module__3dJGfa__button.Button-module__3dJGfa__secondary:hover{background-color:color-mix(in lab,var(--btn-secondary-bg-color),#000 10%);box-shadow:0 .125rem .5rem 0 var(--border-primary)}.Button-module__3dJGfa__button.Button-module__3dJGfa__secondary:active{background-color:color-mix(in lab,var(--btn-secondary-bg-color),#000 20%);box-shadow:0 .0625rem .25rem 0 var(--border-primary)}.Button-module__3dJGfa__button.Button-module__3dJGfa__secondary:focus{outline:none;outline:var(--border-width-strong) solid var(--border-focus);outline-offset:calc(var(--border-width-strong)*-1);z-index:1}
.ProjectTile-module__3-c2vW__tileContent{flex-direction:column;flex-grow:1;gap:48px;display:flex}.ProjectTile-module__3-c2vW__content{flex-direction:column;flex-grow:1;gap:12px;display:flex}.ProjectTile-module__3-c2vW__btnGroup{align-self:center;align-items:center;gap:8px;display:flex}
.Contact-module__UT7GOW__grid{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:768px){.Contact-module__UT7GOW__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}.Contact-module__UT7GOW__card{background-color:var(--surface-primary);box-shadow:0 .125rem .5rem 0 var(--shadow-color);border-radius:8px;flex-direction:column;gap:20px;padding:24px;display:flex}.Contact-module__UT7GOW__muted{color:var(--text-secondary);margin-top:4px}.Contact-module__UT7GOW__eyebrow{color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:600}.Contact-module__UT7GOW__subheading{color:var(--text-primary);margin:0 0 8px;font-size:13px;font-weight:600}.Contact-module__UT7GOW__bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.Contact-module__UT7GOW__bullets li{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;display:flex}.Contact-module__UT7GOW__bullets li:before{background-color:var(--surface-positive);content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.Contact-module__UT7GOW__badges{grid-template-columns:1fr;gap:8px;display:grid}@media (min-width:480px){.Contact-module__UT7GOW__badges{grid-template-columns:1fr 1fr}}.Contact-module__UT7GOW__badge{background-color:var(--surface-base);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:8px;padding:8px 12px;font-size:13px}.Contact-module__UT7GOW__socials{gap:8px;margin-top:auto;display:flex}.Contact-module__UT7GOW__social{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.Contact-module__UT7GOW__social:hover{background-color:var(--surface-base)}.Contact-module__UT7GOW__social:focus-visible{outline:var(--border-width-strong) solid var(--border-focus)}.Contact-module__UT7GOW__form{flex-direction:column;gap:14px;display:flex;position:relative}.Contact-module__UT7GOW__row{grid-template-columns:1fr;gap:14px;display:grid}@media (min-width:480px){.Contact-module__UT7GOW__row{grid-template-columns:1fr 1fr}}.Contact-module__UT7GOW__field{flex-direction:column;gap:6px;display:flex}.Contact-module__UT7GOW__fieldLabel{color:var(--text-primary);font-size:13px;font-weight:600}.Contact-module__UT7GOW__field input,.Contact-module__UT7GOW__field textarea{background-color:var(--surface-base);border:1px solid var(--border-primary);color:var(--text-primary);font:inherit;border-radius:6px;width:100%;padding:10px 12px;font-size:14px}.Contact-module__UT7GOW__field textarea{resize:vertical}.Contact-module__UT7GOW__field input:focus,.Contact-module__UT7GOW__field textarea:focus{border-color:var(--border-focus);outline:none}.Contact-module__UT7GOW__honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.Contact-module__UT7GOW__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.Contact-module__UT7GOW__submit{background-color:var(--surface-inverse);color:var(--text-inverse);cursor:pointer;font:inherit;border:0;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600}.Contact-module__UT7GOW__submit:hover:not(:disabled){background-color:color-mix(in lab,var(--surface-inverse),#fff 15%)}.Contact-module__UT7GOW__submit:disabled{cursor:progress;opacity:.7}.Contact-module__UT7GOW__status{margin:0;font-size:14px}.Contact-module__UT7GOW__success{color:var(--text-positive)}.Contact-module__UT7GOW__error{color:var(--text-negative)}
.page-module__E0kJGG__about{flex-direction:column;gap:24px;display:flex}
