*,::after,::before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,::after,::before{animation-duration:NaNs!important;animation-iteration-count:1!important;transition-duration:NaNs!important;scroll-behavior:auto!important}}code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:0}.prose>*+*{margin-top:1.5rem}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:600;line-height:1.25;margin-top:2.5rem;margin-bottom:1rem}.prose p{margin-top:0;margin-bottom:1rem}.prose ol,.prose ul{padding-left:1.25rem;margin-top:0;margin-bottom:1rem}.prose ol li+li,.prose ul li+li{margin-top:.25rem}.prose table{width:100%;border-collapse:collapse;margin-bottom:1rem;background-color:var(--theme-surface-container);border:1px solid var(--theme-outline)}.prose td,.prose th{border:2px solid var(--theme-outline);padding:.5rem;text-align:left}.prose thead{background-color:var(--theme-surface-container-high)}.prose tr:nth-child(2n){background-color:var(--theme-surface-container-low)}.prose a{text-decoration:underline;text-underline-offset:2px}body{font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  );line-height:1.5;color:var(--theme-text);font-family:Georgia,"Times New Roman",serif}h1,h2,h3,h4,h5,h6{font-family:Georgia,"Times New Roman",serif}h1{font-size:clamp(
    2.49rem,
    6.81vw + 1.13rem,
    6.57rem
  )}h2{font-size:clamp(
    2.07rem,
    4.78vw + 1.12rem,
    4.94rem
  )}h3{font-size:clamp(
    1.73rem,
    3.31vw + 1.07rem,
    3.72rem
  )}h4{font-size:clamp(
    1.44rem,
    2.26vw + .99rem,
    2.79rem
  )}h1,h2,h3,h4,h5,h6{font-weight:font-weight(semibold);line-height:1.2}p{line-height:1.5}a{color:inherit;text-decoration:underline}a:hover{text-decoration:none}ol,ul{margin-bottom:.75rem;padding-left:1.25rem}hr{color:var(--theme-outline-variant)}.z-code{color:var(--theme-on-surface);background-color:var(--theme-surface-container-lowest);font-family:monospace;padding:.5rem;margin:0}.z-text{background-color:var(--theme-surface-container-lowest)}.z-variable.z-parameter.z-function{color:var(--theme-on-surface)}.z-comment,.z-punctuation.z-definition.z-comment{color:var(--theme-on-surface-variant)}.z-punctuation.z-definition.z-array,.z-punctuation.z-definition.z-parameters,.z-punctuation.z-definition.z-string,.z-punctuation.z-definition.z-variable{color:var(--theme-on-surface)}.z-keyword.z-operator,.z-none{color:var(--theme-on-surface)}.z-keyword{color:var(--theme-purple)}.z-variable{color:var(--theme-on-surface)}.z-entity.z-name.z-function,.z-meta.z-require,.z-support.z-function.z-any-method{color:var(--theme-blue)}.z-entity.z-name.z-class,.z-entity.z-name.z-type.z-class,.z-support.z-class{color:var(--theme-yellow)}.z-meta.z-class{color:var(--theme-on-surface)}.z-keyword.z-other.z-special-method{color:var(--theme-blue)}.z-storage{color:var(--theme-purple)}.z-support.z-function{color:var(--theme-teal)}.z-constant.z-other.z-symbol,.z-entity.z-other.z-inherited-class,.z-string{color:var(--theme-green)}.z-constant,.z-constant.z-numeric,.z-none{color:var(--theme-orange)}.z-entity.z-name.z-tag{color:var(--theme-on-surface)}.z-entity.z-other.z-attribute-name{color:var(--theme-orange)}.z-entity.z-other.z-attribute-name.z-id,.z-punctuation.z-definition.z-entity{color:var(--theme-blue)}.z-meta.z-selector{color:var(--theme-purple)}.z-entity.z-name.z-section,.z-markup.z-heading .z-punctuation.z-definition.z-heading{color:var(--theme-blue)}.z-keyword.z-other.z-unit{color:var(--theme-orange)}.z-markup.z-bold,.z-punctuation.z-definition.z-bold{color:var(--theme-yellow);font-weight:700}.z-markup.z-italic,.z-punctuation.z-definition.z-italic{color:var(--theme-purple);font-style:italic}.z-markup.z-raw.z-inline{color:var(--theme-green)}.z-string.z-other.z-link{color:var(--theme-red)}.z-meta.z-link{color:var(--theme-orange)}.z-markup.z-list{color:var(--theme-red)}.z-markup.z-quote{color:var(--theme-orange)}.z-meta.z-separator{color:var(--theme-on-surface);background-color:var(--theme-outline)}.z-markup.z-inserted,.z-markup.z-inserted.z-git_gutter{color:var(--theme-green)}.z-markup.z-deleted,.z-markup.z-deleted.z-git_gutter{color:#bf616a}.z-markup.z-changed,.z-markup.z-changed.z-git_gutter{color:#b48ead}.z-markup.z-ignored,.z-markup.z-ignored.z-git_gutter{color:#4f5b66}.z-markup.z-untracked,.z-markup.z-untracked.z-git_gutter{color:#4f5b66}.z-constant.z-character.z-escape,.z-constant.z-other.z-color,.z-string.z-regexp{color:#96b5b4}.z-punctuation.z-section.z-embedded,.z-variable.z-interpolation{color:#ab7967}.z-invalid.z-illegal{color:#2b303b;background-color:#bf616a}.z-markup.z-deleted.z-git_gutter{color:#f92672}.z-markup.z-inserted.z-git_gutter{color:#a6e22e}.z-markup.z-changed.z-git_gutter{color:#967efb}.z-markup.z-ignored.z-git_gutter,.z-markup.z-untracked.z-git_gutter{color:#565656}.z-name{color:var(--theme-yellow)}.z-support.z-macro{color:var(--theme-red)}.z-support.z-type{color:var(--theme-orange)}.z-keyword{color:var(--theme-purple)}:root{--theme-primary:#432dd7;--theme-on-primary:#f8fafc;--theme-primary-container:#e0e7ff;--theme-on-primary-container:#312c85;--theme-secondary:#45556c;--theme-on-secondary:#f8fafc;--theme-secondary-container:#e2e8f0;--theme-on-secondary-container:#0f172b;--theme-tertiary:#007595;--theme-on-tertiary:#f8fafc;--theme-tertiary-container:#a2f4fd;--theme-on-tertiary-container:#104e64;--theme-error:#ec003f;--theme-on-error:#f8fafc;--theme-error-container:#ffe4e6;--theme-on-error-container:#8b0836;--theme-surface:#f8fafc;--theme-surface-dim:#f1f5f9;--theme-surface-bright:#f8fafc;--theme-surface-container-lowest:#f8fafc;--theme-surface-container-low:#f1f5f9;--theme-surface-container:#e2e8f0;--theme-surface-container-high:#cad5e2;--theme-surface-container-highest:#90a1b9;--theme-on-surface:#0f172b;--theme-on-surface-variant:#45556c;--theme-outline:#90a1b9;--theme-outline-variant:#e2e8f0;--theme-inverse-surface:#0f172b;--theme-inverse-on-surface:#f1f5f9;--theme-inverse-primary:#a3b3ff;--theme-scrim:rgba(0,0,0,.5);--theme-shadow:rgba(0,0,0,.2);--theme-red:#fb2c36;--theme-orange:#ff6900;--theme-yellow:#f0b100;--theme-green:#00c950;--theme-teal:#00bba7;--theme-blue:#2b7fff;--theme-indigo:#615fff;--theme-purple:#ad46ff;--theme-pink:#f6339a}@media (prefers-color-scheme:dark){:root{--theme-primary:#a3b3ff;--theme-on-primary:#0f172b;--theme-primary-container:#c6d2ff;--theme-on-primary-container:#312c85;--theme-secondary:#90a1b9;--theme-on-secondary:#0f172b;--theme-secondary-container:#45556c;--theme-on-secondary-container:#f8fafc;--theme-tertiary:#00d3f2;--theme-on-tertiary:#020618;--theme-tertiary-container:#0092b8;--theme-on-tertiary-container:#ecfeff;--theme-error:#ff2056;--theme-on-error:#0f172b;--theme-error-container:#c70036;--theme-on-error-container:#fff1f2;--theme-surface:#1d293d;--theme-surface-dim:#020618;--theme-surface-bright:#1d293d;--theme-surface-container-lowest:#0f172b;--theme-surface-container-low:#1d293d;--theme-surface-container:#314158;--theme-surface-container-high:#45556c;--theme-surface-container-highest:#62748e;--theme-on-surface:#cad5e2;--theme-on-surface-variant:#90a1b9;--theme-outline:#45556c;--theme-outline-variant:#314158;--theme-inverse-surface:#f1f5f9;--theme-inverse-on-surface:#0f172b;--theme-inverse-primary:#c6d2ff;--theme-scrim:rgba(0,0,0,.5);--theme-shadow:rgba(0,0,0,.2);--theme-red:#ffa2a2;--theme-orange:#ffb86a;--theme-yellow:#ffd230;--theme-green:#5ee9b5;--theme-teal:#8ec5ff;--theme-blue:#74d4ff;--theme-indigo:#a3b3ff;--theme-purple:#c4b4ff;--theme-pink:#fda5d5}}[data-theme=default-light]{--theme-primary:#432dd7;--theme-on-primary:#f8fafc;--theme-primary-container:#e0e7ff;--theme-on-primary-container:#312c85;--theme-secondary:#45556c;--theme-on-secondary:#f8fafc;--theme-secondary-container:#e2e8f0;--theme-on-secondary-container:#0f172b;--theme-tertiary:#007595;--theme-on-tertiary:#f8fafc;--theme-tertiary-container:#a2f4fd;--theme-on-tertiary-container:#104e64;--theme-error:#ec003f;--theme-on-error:#f8fafc;--theme-error-container:#ffe4e6;--theme-on-error-container:#8b0836;--theme-surface:#f8fafc;--theme-surface-dim:#f1f5f9;--theme-surface-bright:#f8fafc;--theme-surface-container-lowest:#f8fafc;--theme-surface-container-low:#f1f5f9;--theme-surface-container:#e2e8f0;--theme-surface-container-high:#cad5e2;--theme-surface-container-highest:#90a1b9;--theme-on-surface:#0f172b;--theme-on-surface-variant:#45556c;--theme-outline:#90a1b9;--theme-outline-variant:#e2e8f0;--theme-inverse-surface:#0f172b;--theme-inverse-on-surface:#f1f5f9;--theme-inverse-primary:#a3b3ff;--theme-scrim:rgba(0,0,0,.5);--theme-shadow:rgba(0,0,0,.2);--theme-red:#fb2c36;--theme-orange:#ff6900;--theme-yellow:#f0b100;--theme-green:#00c950;--theme-teal:#00bba7;--theme-blue:#2b7fff;--theme-indigo:#615fff;--theme-purple:#ad46ff;--theme-pink:#f6339a}[data-theme=default-dark]{--theme-primary:#a3b3ff;--theme-on-primary:#0f172b;--theme-primary-container:#c6d2ff;--theme-on-primary-container:#312c85;--theme-secondary:#90a1b9;--theme-on-secondary:#0f172b;--theme-secondary-container:#45556c;--theme-on-secondary-container:#f8fafc;--theme-tertiary:#00d3f2;--theme-on-tertiary:#020618;--theme-tertiary-container:#0092b8;--theme-on-tertiary-container:#ecfeff;--theme-error:#ff2056;--theme-on-error:#0f172b;--theme-error-container:#c70036;--theme-on-error-container:#fff1f2;--theme-surface:#1d293d;--theme-surface-dim:#020618;--theme-surface-bright:#1d293d;--theme-surface-container-lowest:#0f172b;--theme-surface-container-low:#1d293d;--theme-surface-container:#314158;--theme-surface-container-high:#45556c;--theme-surface-container-highest:#62748e;--theme-on-surface:#cad5e2;--theme-on-surface-variant:#90a1b9;--theme-outline:#45556c;--theme-outline-variant:#314158;--theme-inverse-surface:#f1f5f9;--theme-inverse-on-surface:#0f172b;--theme-inverse-primary:#c6d2ff;--theme-scrim:rgba(0,0,0,.5);--theme-shadow:rgba(0,0,0,.2);--theme-red:#ffa2a2;--theme-orange:#ffb86a;--theme-yellow:#ffd230;--theme-green:#5ee9b5;--theme-teal:#8ec5ff;--theme-blue:#74d4ff;--theme-indigo:#a3b3ff;--theme-purple:#c4b4ff;--theme-pink:#fda5d5}body{background-color:var(--theme-surface);color:var(--theme-on-surface)}.page{min-height:100dvh;display:flex;flex-direction:column}.header{width:100%;position:fixed;padding:.5rem 1rem;background-color:inherit;top:0;left:0;right:0;transition:opacity .2s ease-in-out;z-index:999;display:flex;justify-content:center}.header__nav{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;width:100%;max-width:1320px}.header__logo{font-size:clamp(
    1.2rem,
    1.5vw + .9rem,
    2.1rem
  );background-color:var(--theme-surface);border-color:var(--theme-surface);border:none;text-decoration:none}.header__contact{font-size:clamp(
    .83rem,
    .59vw + .72rem,
    1.19rem
  );font-weight:400;padding-inline:.75rem;padding-block:0;text-decoration:none}.header__contact:hover{text-decoration:underline}.header.hidden{opacity:0;pointer-events:none}.main{flex:1;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.footer{padding:2rem 1.5rem;font-size:clamp(
    .83rem,
    .59vw + .72rem,
    1.19rem
  );background-color:var(--theme-surface)}.footer__container{max-width:720px;margin:0 auto;text-align:center}.footer__nav{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1rem}.footer__nav a{color:var(--theme-on-surface);text-decoration:none}.footer__nav a:hover{text-decoration:underline}.footer__copy{color:var(--theme-on-surface-variant)}.hero{min-height:83vh;text-align:left;padding-inline:1rem;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative!important}.hero__bg{position:absolute;z-index:-1;color:var(--theme-outline-variant);left:40%;bottom:0;width:clamp(350px,-5.21vw + 416.67px,400px);max-width:550px;height:auto}.hero__container{width:100%;max-width:960px}.hero__title{font-weight:700;font-size:clamp(
    2.07rem,
    4.78vw + 1.12rem,
    4.94rem
  )}.hero__subtitle{margin-bottom:2rem;font-size:clamp(
    1.44rem,
    2.26vw + .99rem,
    2.79rem
  )}.hero__description{margin-bottom:4rem}.hero__contact:hover{text-decoration:underline}.hero__info-list{display:flex;flex-direction:column;gap:.5rem;font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  )}.hero__info-item{display:flex;flex-direction:row;align-items:center;gap:.5rem}.hero__info-item a{text-decoration:none}.hero__info-item a:hover{text-decoration:underline}.hero__icon{fill:var(--theme-on-surface);width:28px;display:flex}.landing-section{min-height:75vh;padding-block:4rem;padding-inline:1rem;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.landing-section__container{width:100%;text-align:center;max-width:960px;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.landing-section__title{margin-bottom:4rem}.core-focus__container{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:stretch}@media (min-width:720px){.core-focus__container{grid-template-columns:repeat(3,1fr)}}.core-focus__item{background-color:var(--theme-surface-container);padding:1rem;border-radius:.125rem;text-align:left;display:flex;flex-direction:column;justify-content:flex-start;min-height:9rem;box-shadow:0 8px 15px rgba(0,0,0,.2),0 4px 6px rgba(0,0,0,.1)}.core-focus__name{font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  );font-weight:600;margin-bottom:.5rem}.core-focus__description{height:100%;display:flex;align-items:center;font-size:clamp(
    .83rem,
    .59vw + .72rem,
    1.19rem
  );color:var(--theme-on-surface-variant)}.projects__container{display:flex;flex-direction:column;gap:6rem;width:100%;max-width:760px}.projects__item{display:flex;flex-direction:column;background-color:var(--theme-surface-container);border-radius:.125rem;overflow:hidden;text-decoration:none;padding:1.5rem;box-shadow:0 8px 15px rgba(0,0,0,.2),0 4px 6px rgba(0,0,0,.1);transition:box-shadow .2s ease,background-color .2s ease}.projects__item:hover{background-color:var(--theme-surface-container-high);box-shadow:0 12px 30px rgba(0,0,0,.2)}.projects__item:hover .projects__image{filter:brightness(.9) contrast(.8)}.projects__image{width:100%;object-fit:cover;margin-bottom:1.5rem;transition:filter .2s ease}.projects__name{font-size:clamp(
    1.44rem,
    2.26vw + .99rem,
    2.79rem
  );margin-bottom:1rem;font-weight:600}.projects__description{font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  );color:var(--theme-on-surface);text-align:left;margin-bottom:1rem}.contact__text{margin-bottom:1rem}.contact__actions{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  )}.contact__copy{color:var(--theme-on-surface);display:flex;width:100%;background-color:rgba(0,0,0,0);border-color:transparent}.contact__copy:hover{color:var(--theme-on-surface-variant)}.contact__svg{width:1.5rem}.contact__copy-msg{color:var(--theme-on-surface-variant);min-height:2em;font-size:clamp(
    .83rem,
    .59vw + .72rem,
    1.19rem
  )}.btn{padding:.75rem 1.5rem;font-weight:600;text-decoration:none;border:1px solid transparent;border-radius:.125rem;transition:background .2s ease;cursor:pointer}.btn--primary{background:var(--theme-primary);color:var(--theme-on-primary)}.btn--primary:hover{background:color-mix(in srgb,var(--theme-primary),#000 10%)}.btn--secondary{background:var(--theme-secondary);color:var(--theme-on-secondary);border-color:var(--theme-outline)}.btn--secondary:hover{background:color-mix(in srgb,var(--theme-secondary),#000 10%)}.btn--ghost{background:inherit;color:inherit;border-color:none}.btn--ghost:hover{text-decoration:underline}pre{padding:0;overflow:auto;border-radius:.125rem;width:100%}pre[data-linenos]{padding:1rem 0}pre table td{padding:0}pre table td:first-of-type{text-align:center;vertical-align:top;user-select:none;margin-block:1rem}pre mark{display:block;background-color:rgba(254,252,232,.9)}pre table{width:100%;border-collapse:collapse}pre code{font-size:clamp(
    .83rem,
    .59vw + .72rem,
    1.19rem
  );margin:0;padding:0}code{padding:0 .5rem;font-size:clamp(
    1rem,
    .97vw + .81rem,
    1.58rem
  );border-radius:.125rem;background-color:var(--theme-surface-container-lowest);color:var(--theme-on-surface)}