.contents-module__ZRlFHa__contents{z-index:1;background-color:var(--color-surface-bar);-webkit-backdrop-filter:blur(var(--contents-bar-blur));backdrop-filter:blur(var(--contents-bar-blur));border-block-end:1px solid var(--color-rule);box-shadow:var(--shadow-bar);position:sticky;inset-block-start:0}.contents-module__ZRlFHa__bar{align-content:center;align-items:center;column-gap:var(--space-small);row-gap:var(--space-small);min-block-size:var(--contents-bar-height);max-inline-size:var(--content-width);padding-inline:var(--page-gutter);font-size:var(--font-size-x-small);flex-wrap:wrap;margin-inline:auto;display:flex}.contents-module__ZRlFHa__menu{padding-block:var(--space-small);color:var(--color-text-heading);font-size:var(--contents-menu-icon-size);cursor:pointer;background:0 0;border:0;align-items:center;margin-inline-start:auto;padding-inline:0;display:inline-flex}.contents-module__ZRlFHa__menu:hover,.contents-module__ZRlFHa__menu:focus-visible{color:var(--color-accent)}@media (prefers-reduced-motion:no-preference){.contents-module__ZRlFHa__menu{transition-property:color;transition-duration:var(--hover-transition)}}.contents-module__ZRlFHa__list{max-block-size:var(--contents-menu-max-size);padding-block:var(--space-small);padding-inline:var(--page-gutter);background-color:var(--color-surface);border-block-end:1px solid var(--color-rule);box-shadow:var(--shadow-bar);font-size:var(--font-size-medium);flex-direction:column;align-items:flex-start;margin:0;list-style:none;display:none;position:absolute;inset-block-start:100%;inset-inline:0;overflow-y:auto}.contents-module__ZRlFHa__menu[aria-expanded=true]+.contents-module__ZRlFHa__list{display:flex}.contents-module__ZRlFHa__list .contents-module__ZRlFHa__link{padding-block:var(--space-small)}@media (min-width:48em),(scripting:none){.contents-module__ZRlFHa__menu{display:none}.contents-module__ZRlFHa__list{justify-content:flex-end;align-items:center;column-gap:var(--space-small);row-gap:var(--space-small);max-block-size:none;box-shadow:none;font-size:var(--font-size-x-small);background-color:#0000;border-block-end:0;flex-flow:wrap;margin-inline-start:auto;padding:0;display:flex;position:static;overflow-y:visible}.contents-module__ZRlFHa__list .contents-module__ZRlFHa__link{padding-block:0}.contents-module__ZRlFHa__bar .contents-module__ZRlFHa__title{flex-grow:0;flex-basis:auto}}.contents-module__ZRlFHa__title{color:var(--color-text-heading);font-size:var(--font-size-x-large);font-weight:var(--font-weight-bold);flex-grow:1;flex-basis:0}@media (min-width:48em){.contents-module__ZRlFHa__bar,.contents-module__ZRlFHa__list{column-gap:var(--space-large)}}.contents-module__ZRlFHa__link{color:var(--color-text-muted);font-weight:var(--font-weight-medium);align-items:center;text-decoration-line:none;display:inline-flex}.contents-module__ZRlFHa__link:hover,.contents-module__ZRlFHa__link:focus-visible{color:var(--color-accent)}.contents-module__ZRlFHa__link[aria-current]{text-underline-offset:var(--underline-offset);text-decoration-line:underline}
.footer-module__oqRDSq__footer{border-block-start:1px solid var(--color-border);background-color:var(--color-surface-band);padding-block:var(--space-large);color:var(--color-text-faint);font-size:var(--font-size-xx-small)}.footer-module__oqRDSq__container{justify-content:space-between;align-items:center;column-gap:var(--space-medium);row-gap:var(--space-small);max-inline-size:var(--content-width);padding-inline:var(--page-gutter);flex-wrap:wrap;margin-inline:auto;display:flex}.footer-module__oqRDSq__name{font-family:var(--font-family-heading)}.footer-module__oqRDSq__addresses{column-gap:var(--space-medium);row-gap:var(--space-small);flex-wrap:wrap;padding-inline-start:0;list-style:none;display:flex}.footer-module__oqRDSq__link{color:var(--color-text-faint);overflow-wrap:anywhere;align-items:center;text-decoration-line:none;display:inline-flex}.footer-module__oqRDSq__link:hover,.footer-module__oqRDSq__link:focus-visible{color:var(--color-accent)}@media print{.footer-module__oqRDSq__link:after{content:none}}
.business-case-slider-module__kRRUyq__card{border:1px solid var(--color-border-timeline-card);border-radius:var(--radius-large);background:var(--surface-timeline-card);box-shadow:var(--shadow-raised), var(--shadow-card-highlight)}.business-case-slider-module__kRRUyq__items{row-gap:var(--space-large);padding:var(--space-medium);grid-template-columns:minmax(0,1fr);display:grid}.business-case-slider-module__kRRUyq__item{visibility:hidden;flex-direction:column;grid-area:1/1;align-items:flex-start;display:flex}.business-case-slider-module__kRRUyq__shown{visibility:visible}.business-case-slider-module__kRRUyq__label{padding-block:var(--business-case-label-block);padding-inline:var(--business-case-label-inline);border-radius:var(--radius-pill);background-color:var(--color-surface-case-label);color:var(--color-accent);font-size:var(--font-size-xxxx-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-x-loose);text-transform:uppercase}.business-case-slider-module__kRRUyq__heading{gap:var(--business-case-gap);align-items:center;margin-block-start:var(--space-medium);display:flex}.business-case-slider-module__kRRUyq__icon{font-size:var(--business-case-icon-size);line-height:var(--line-height-heading);flex-shrink:0}.business-case-slider-module__kRRUyq__headline{min-inline-size:0;font-size:var(--font-size-large);letter-spacing:0;overflow-wrap:anywhere}.business-case-slider-module__kRRUyq__text{color:var(--color-text-secondary);font-size:var(--font-size-x-small);line-height:var(--line-height-prose);margin-block-start:var(--business-case-gap)}.business-case-slider-module__kRRUyq__label+.business-case-slider-module__kRRUyq__text{margin-block-start:var(--space-medium)}.business-case-slider-module__kRRUyq__figure{align-self:stretch;column-gap:var(--business-case-gap);border-block-start:1px solid var(--color-border-timeline-card);flex-wrap:wrap;align-items:baseline;margin-block-start:var(--space-medium);padding-block-start:var(--space-medium);display:flex}.business-case-slider-module__kRRUyq__value{color:var(--color-accent);font-family:var(--font-family-heading);font-size:var(--business-case-figure-size);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-tight)}.business-case-slider-module__kRRUyq__caption{color:var(--color-text-muted);font-size:var(--font-size-xxx-small)}.business-case-slider-module__kRRUyq__controls{gap:var(--space-small);padding-block:var(--business-case-gap);padding-inline:var(--space-medium);border-block-start:1px solid var(--color-border-timeline-card);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.business-case-slider-module__kRRUyq__step{gap:var(--space-x-small);color:var(--color-text-muted);font-family:var(--font-family-body);font-size:var(--font-size-xxx-small);font-weight:var(--font-weight-medium);line-height:var(--line-height-body);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.business-case-slider-module__kRRUyq__step:hover,.business-case-slider-module__kRRUyq__step:focus-visible{color:var(--color-accent)}.business-case-slider-module__kRRUyq__dots{gap:var(--business-case-dot-size);align-items:center;padding-inline-start:0;list-style:none;display:flex}.business-case-slider-module__kRRUyq__dot{inline-size:var(--business-case-dot-size);block-size:var(--business-case-dot-size);border-radius:var(--radius-pill);background-color:var(--color-border-accent);cursor:pointer;border:0;padding:0;display:block}.business-case-slider-module__kRRUyq__dot:hover,.business-case-slider-module__kRRUyq__dot:focus-visible{background-color:var(--color-border-accent-hover)}.business-case-slider-module__kRRUyq__dot[aria-current]{inline-size:var(--business-case-dot-current);background-color:var(--color-accent)}@media (scripting:none){.business-case-slider-module__kRRUyq__item{visibility:visible;grid-area:auto}.business-case-slider-module__kRRUyq__controls{display:none}}@media (min-width:48em){.business-case-slider-module__kRRUyq__items{padding:var(--business-case-padding)}.business-case-slider-module__kRRUyq__controls{padding-inline:var(--business-case-padding)}}
.hint-module__-ToYQW__hint{gap:var(--space-small);color:var(--color-text-faint);font-size:var(--font-size-xxx-small);align-items:center;display:flex}.hint-module__-ToYQW__hint+*{margin-block-start:var(--space-small)}@media print{.hint-module__-ToYQW__hint{display:none}.hint-module__-ToYQW__hint+*{margin-block-start:0}}
.larger-picture-module__RzPwiG__frame{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid;position:relative}.larger-picture-module__RzPwiG__framed{inline-size:var(--project-view-box-width);border-radius:var(--radius-large);grid-area:1/1;place-self:center;block-size:auto;max-inline-size:100%}.larger-picture-module__RzPwiG__enlarge{inline-size:var(--project-view-enlarge-size);block-size:var(--project-view-enlarge-size);margin:var(--space-small);border-radius:var(--radius-pill);background-color:var(--color-surface-card);box-shadow:var(--shadow-raised);color:var(--color-text-heading);font-size:var(--font-size-large);cursor:zoom-in;border:0;grid-area:1/1;justify-content:center;place-self:end;align-items:center;padding:0;display:inline-flex}.larger-picture-module__RzPwiG__enlarge:after{content:"";position:absolute;inset:0}.larger-picture-module__RzPwiG__enlarge:hover,.larger-picture-module__RzPwiG__enlarge:focus-visible{background-color:var(--color-surface-hover);color:var(--color-accent)}.larger-picture-module__RzPwiG__larger{block-size:auto;max-block-size:none;inline-size:auto;max-inline-size:none;padding:var(--space-small);background-color:var(--color-surface-enlarged);-webkit-backdrop-filter:blur(var(--project-view-enlarged-blur));backdrop-filter:blur(var(--project-view-enlarged-blur));color:var(--color-on-enlarged);border:0;margin:0}.larger-picture-module__RzPwiG__larger[open]{row-gap:var(--space-small);grid-template-rows:auto minmax(0,1fr) auto;place-items:center;display:grid}.larger-picture-module__RzPwiG__larger :focus-visible{outline-color:var(--color-on-enlarged)}.larger-picture-module__RzPwiG__close,.larger-picture-module__RzPwiG__step{inline-size:var(--project-view-enlarge-size);block-size:var(--project-view-enlarge-size);border-radius:var(--radius-pill);background-color:var(--color-surface-card);color:var(--color-text-heading);font-size:var(--font-size-large);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.larger-picture-module__RzPwiG__close{justify-self:end}.larger-picture-module__RzPwiG__close:before{content:"";cursor:zoom-out;position:absolute;inset:0}.larger-picture-module__RzPwiG__close:hover,.larger-picture-module__RzPwiG__close:focus-visible,.larger-picture-module__RzPwiG__step:hover,.larger-picture-module__RzPwiG__step:focus-visible{background-color:var(--color-surface-hover);color:var(--color-accent)}.larger-picture-module__RzPwiG__room{place-self:stretch stretch;place-items:center;display:grid;container-type:size}.larger-picture-module__RzPwiG__picture{inline-size:var(--project-view-box-width);max-inline-size:min(100%, 100cqb * var(--project-view-box-ratio));border-radius:var(--radius-large);block-size:auto;position:relative}.larger-picture-module__RzPwiG__caption{max-inline-size:var(--measure);font-size:var(--font-size-small);text-align:center;overflow-wrap:anywhere;position:relative}.larger-picture-module__RzPwiG__foot{column-gap:var(--space-small);grid-template-columns:auto minmax(0,1fr) auto;justify-self:stretch;align-items:end;display:grid}.larger-picture-module__RzPwiG__words{flex-direction:column;align-items:center;display:flex}.larger-picture-module__RzPwiG__step{position:relative}html:has(.larger-picture-module__RzPwiG__larger[open]){scrollbar-gutter:stable;overflow:hidden}@media (min-width:48em){.larger-picture-module__RzPwiG__larger{padding:var(--space-medium)}.larger-picture-module__RzPwiG__stepped[open]{column-gap:var(--space-small);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"close close close""before picture after""words words words"}.larger-picture-module__RzPwiG__foot{display:contents}.larger-picture-module__RzPwiG__stepped .larger-picture-module__RzPwiG__close{grid-area:close}.larger-picture-module__RzPwiG__stepped .larger-picture-module__RzPwiG__room{grid-area:picture}.larger-picture-module__RzPwiG__before{grid-area:before}.larger-picture-module__RzPwiG__words{grid-area:words}.larger-picture-module__RzPwiG__after{grid-area:after}}@media (scripting:none){.larger-picture-module__RzPwiG__step{display:none}}
.metadata-line-module__tI5Yaq__metadata{color:var(--color-text-muted);font-size:var(--font-size-small)}
.introduction-module__nSTP1q__introduction{align-items:center;column-gap:var(--space-medium);padding-block:var(--page-padding-block) var(--space-boundary);background-color:var(--color-surface-band);flex-wrap:wrap;display:flex}.introduction-module__nSTP1q__frame{border-radius:var(--radius-pill);box-shadow:var(--shadow-photo-glow);margin-block-end:var(--space-small);position:relative}.introduction-module__nSTP1q__frame:after{content:"";border-radius:var(--radius-pill);box-shadow:var(--shadow-photo-inner);position:absolute;inset:0}.introduction-module__nSTP1q__photo{inline-size:var(--photo-width);aspect-ratio:var(--photo-ratio);border-radius:var(--radius-pill);object-fit:cover;display:block}.introduction-module__nSTP1q__text{margin-block-start:0;display:contents}.introduction-module__nSTP1q__text>*+*{margin-block-start:var(--space-flow)}.introduction-module__nSTP1q__text>:not(.introduction-module__nSTP1q__heading){flex-basis:100%}.introduction-module__nSTP1q__greeting{color:var(--color-text-secondary);font-size:var(--font-size-large)}.introduction-module__nSTP1q__greeting+h1{margin-block-start:var(--space-x-small)}.introduction-module__nSTP1q__heading h1{font-size:var(--font-size-page-title-narrow)}.introduction-module__nSTP1q__heading{min-inline-size:min-content;flex:1 1 0;margin-block-end:var(--space-small);display:flow-root}.introduction-module__nSTP1q__positioning{color:var(--color-accent);font-size:var(--font-size-large);font-weight:var(--font-weight-medium);margin-block-start:var(--space-small)}.introduction-module__nSTP1q__location{gap:var(--space-x-small);color:var(--color-text-faint);align-items:center;margin-block-start:var(--space-x-small);display:flex}.introduction-module__nSTP1q__summary{max-inline-size:var(--measure-summary);line-height:var(--line-height-prose)}.introduction-module__nSTP1q__location+.introduction-module__nSTP1q__summary{margin-block-start:var(--space-summary)}.introduction-module__nSTP1q__summary+.introduction-module__nSTP1q__invitation{margin-block-start:var(--space-controls)}.introduction-module__nSTP1q__invitation{color:var(--color-accent);font-size:var(--font-size-large);font-weight:var(--font-weight-semibold)}.introduction-module__nSTP1q__invitation+.introduction-module__nSTP1q__callToAction{margin-block-start:var(--space-x-small)}.introduction-module__nSTP1q__callToAction{color:var(--color-text-secondary)}.introduction-module__nSTP1q__controls{gap:var(--space-small);flex-wrap:wrap;padding-inline-start:0;list-style:none;display:flex}.introduction-module__nSTP1q__contact,.introduction-module__nSTP1q__cv{gap:var(--space-small);padding-block:var(--space-small);padding-inline:var(--space-medium);border-radius:var(--radius-pill);box-shadow:var(--shadow-raised);font-size:var(--font-size-x-small);font-weight:var(--font-weight-medium);overflow-wrap:anywhere;align-items:center;text-decoration-line:none;display:inline-flex}.introduction-module__nSTP1q__contact{border:1px solid var(--color-border-accent);background-color:var(--color-surface-card)}.introduction-module__nSTP1q__cv{border:1px solid var(--color-accent);background-color:var(--color-accent);color:var(--color-on-accent)}.introduction-module__nSTP1q__contact:hover,.introduction-module__nSTP1q__contact:focus-visible{border-color:var(--color-border-accent-hover);background-color:var(--color-surface-hover)}.introduction-module__nSTP1q__cv:hover,.introduction-module__nSTP1q__cv:focus-visible{border-color:var(--color-accent-hover);background-color:var(--color-accent-hover)}.introduction-module__nSTP1q__linkedin{border-color:var(--color-surface-linkedin);background-color:var(--color-surface-linkedin);color:var(--color-on-brand)}.introduction-module__nSTP1q__linkedin:hover,.introduction-module__nSTP1q__linkedin:focus-visible{border-color:var(--color-surface-linkedin-hover);background-color:var(--color-surface-linkedin-hover)}.introduction-module__nSTP1q__github{border-color:var(--color-surface-github);background-color:var(--color-surface-github);color:var(--color-on-brand)}.introduction-module__nSTP1q__github:hover,.introduction-module__nSTP1q__github:focus-visible{border-color:var(--color-surface-github-hover);background-color:var(--color-surface-github-hover)}.introduction-module__nSTP1q__gmail{border-color:var(--color-google-border);color:var(--color-google-ink)}.introduction-module__nSTP1q__gmail:hover,.introduction-module__nSTP1q__gmail:focus-visible{border-color:var(--color-google-border);background-color:var(--color-surface-google-hover)}.introduction-module__nSTP1q__markOnly{inline-size:var(--contact-mark-pill-width);justify-content:center}.introduction-module__nSTP1q__markOnly svg{inline-size:var(--contact-mark-size);block-size:var(--contact-mark-size)}@media print{.introduction-module__nSTP1q__introduction{padding-block-end:0;display:block}.introduction-module__nSTP1q__text{display:block}.introduction-module__nSTP1q__frame{float:inline-start;margin-inline-end:var(--space-medium)}.introduction-module__nSTP1q__heading{margin-block-end:0}.introduction-module__nSTP1q__cvItem,.introduction-module__nSTP1q__greeting{display:none}.introduction-module__nSTP1q__greeting+h1{margin-block-start:0}.introduction-module__nSTP1q__invitation,.introduction-module__nSTP1q__callToAction{display:none}.introduction-module__nSTP1q__callToAction+.introduction-module__nSTP1q__controls{margin-block-start:var(--space-controls)}.introduction-module__nSTP1q__controls{display:block}.introduction-module__nSTP1q__contact{border:none;padding-block:0;padding-inline:0;display:inline}.introduction-module__nSTP1q__contact:after{content:none}.introduction-module__nSTP1q__linkedin{color:var(--color-linkedin)}.introduction-module__nSTP1q__github{color:var(--color-github)}}@media (min-width:48em){.introduction-module__nSTP1q__introduction{grid-template-columns:var(--photo-width-wide) 1fr;gap:var(--space-x-large);align-items:center;display:grid}.introduction-module__nSTP1q__text{display:block}.introduction-module__nSTP1q__frame{float:none;margin-block-end:0;margin-inline-end:0}.introduction-module__nSTP1q__heading{margin-block-end:0}.introduction-module__nSTP1q__photo{inline-size:var(--photo-width-wide)}}@media (min-width:48em),print{.introduction-module__nSTP1q__heading h1{font-size:var(--font-size-page-title)}}
.projects-module__PDyoba__row{gap:var(--project-card-space);grid-template-columns:minmax(0,1fr);display:grid}section>.projects-module__PDyoba__row{margin-block-start:var(--project-card-space)}.projects-module__PDyoba__card{border:1px solid var(--color-border);border-radius:var(--radius-large);background-color:var(--color-surface-card);box-shadow:var(--shadow-raised);flex-direction:column;display:flex;position:relative}.projects-module__PDyoba__media{aspect-ratio:var(--project-card-media-ratio);object-fit:cover;border-start-start-radius:var(--radius-large);border-start-end-radius:var(--radius-large);align-self:stretch;display:block}.projects-module__PDyoba__body{padding:var(--project-card-space);margin-block-start:0}.projects-module__PDyoba__name{font-family:var(--font-family-heading);line-height:var(--line-height-body)}.projects-module__PDyoba__link{color:inherit;text-decoration-line:none}.projects-module__PDyoba__link:after{border-radius:var(--radius-large);content:"";position:absolute;inset:0}.projects-module__PDyoba__link:hover,.projects-module__PDyoba__link:focus-visible{color:var(--color-accent)}.projects-module__PDyoba__card:hover{border-color:var(--color-border-accent-hover);box-shadow:var(--shadow-raised), var(--shadow-card-hover)}.projects-module__PDyoba__card:has(.projects-module__PDyoba__link:focus-visible){border-color:var(--color-border-accent-hover);box-shadow:var(--shadow-raised), var(--shadow-card-hover)}@media (prefers-reduced-motion:no-preference){.projects-module__PDyoba__card{transition-property:translate,border-color,box-shadow;transition-duration:var(--hover-transition)}.projects-module__PDyoba__card:hover{translate:0 calc(-1 * var(--card-lift))}.projects-module__PDyoba__card:has(.projects-module__PDyoba__link:focus-visible){translate:0 calc(-1 * var(--card-lift))}.projects-module__PDyoba__link:before{inset:0 0 calc(-1 * var(--card-lift));content:"";position:absolute}}.projects-module__PDyoba__link:focus-visible{outline:none}.projects-module__PDyoba__link:focus-visible:after{outline:var(--focus-outline-width) solid var(--color-focus);outline-offset:var(--focus-outline-offset)}.projects-module__PDyoba__summary{max-inline-size:none;color:var(--color-text-muted);font-size:var(--font-size-x-small);line-height:var(--line-height-prose-small);margin-block-start:var(--space-x-small)}.projects-module__PDyoba__technologies{gap:var(--space-x-small);flex-wrap:wrap;margin-block-start:var(--project-card-space);padding-inline-start:0;list-style:none;display:flex}.projects-module__PDyoba__tag{padding-block:var(--space-x-small);padding-inline:var(--space-small);border-radius:var(--radius-small);background-color:var(--color-surface-tag);color:var(--color-text-tag);font-size:var(--font-size-xxx-small);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-loose)}@media (min-width:48em),print{.projects-module__PDyoba__row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.projects-module__PDyoba__row{break-inside:avoid}.projects-module__PDyoba__media{border-radius:var(--radius-large)}.projects-module__PDyoba__body{padding-block-end:0;padding-inline:0}.projects-module__PDyoba__link:after,.projects-module__PDyoba__link:before{content:none}}
.project-view-module__Chc-zq__view{padding-block-start:var(--space-view-top);padding-block-end:var(--page-padding-block-end);display:grid}.project-view-module__Chc-zq__back{justify-self:start;gap:var(--space-small);color:var(--color-text-muted);font-size:var(--font-size-x-small);font-weight:var(--font-weight-medium);align-items:center;text-decoration-line:none;display:inline-flex}.project-view-module__Chc-zq__back:hover,.project-view-module__Chc-zq__back:focus-visible{color:var(--color-accent)}.project-view-module__Chc-zq__backMark{font-size:var(--font-size-large);display:inline-flex}.project-view-module__Chc-zq__columns{row-gap:var(--space-boundary);grid-template-columns:minmax(0,1fr);margin-block-start:var(--space-heading);display:grid}.project-view-module__Chc-zq__name:before{inline-size:var(--project-view-rule-width);block-size:var(--project-view-rule-height);border-radius:var(--radius-pill);background-image:linear-gradient(to right, var(--color-border-accent), var(--color-rule-accent-end));content:"";margin-block-end:var(--project-view-rule-gap);display:block}.project-view-module__Chc-zq__name{font-size:var(--font-size-project-title-narrow)}.project-view-module__Chc-zq__description{line-height:var(--line-height-prose);margin-block-start:var(--space-medium)}.project-view-module__Chc-zq__label{color:var(--color-text-faint);font-family:var(--font-family-body);font-size:var(--font-size-xxxx-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-x-loose);text-transform:uppercase;margin-block-start:var(--space-large)}.project-view-module__Chc-zq__howBuilt{line-height:var(--line-height-prose);margin-block-start:var(--project-view-label-gap)}.project-view-module__Chc-zq__howBuilt+.project-view-module__Chc-zq__howBuilt{margin-block-start:var(--space-flow)}.project-view-module__Chc-zq__switch{gap:var(--space-x-small);padding:var(--space-x-small);border:1px solid var(--color-border-accent);border-radius:var(--radius-large);background-color:var(--color-surface-card);vertical-align:top;flex-wrap:wrap;margin-block-start:var(--space-medium);display:inline-flex}.project-view-module__Chc-zq__option{padding-block:var(--space-x-small);padding-inline:var(--space-medium);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--font-size-x-small);font-weight:var(--font-weight-medium);overflow-wrap:anywhere;cursor:pointer;align-items:center;display:inline-flex}.project-view-module__Chc-zq__choice{appearance:none;block-size:0;inline-size:0;margin:0}.project-view-module__Chc-zq__choice:focus-visible{outline:none}.project-view-module__Chc-zq__option:hover{background-color:var(--color-surface-hover);color:var(--color-accent)}.project-view-module__Chc-zq__option:has(.project-view-module__Chc-zq__choice:checked){background-color:var(--color-accent);color:var(--color-on-accent)}.project-view-module__Chc-zq__option:has(.project-view-module__Chc-zq__choice:focus-visible){outline:var(--focus-outline-width) solid var(--color-focus);outline-offset:var(--focus-outline-offset)}.project-view-module__Chc-zq__businessCase{margin-block-start:var(--space-medium);display:none}.project-view-module__Chc-zq__text:has(.project-view-module__Chc-zq__caseChoice:checked) .project-view-module__Chc-zq__overview{display:none}.project-view-module__Chc-zq__text:has(.project-view-module__Chc-zq__caseChoice:checked) .project-view-module__Chc-zq__businessCase{display:block}.project-view-module__Chc-zq__technologies{gap:var(--space-small);flex-wrap:wrap;margin-block-start:var(--project-view-label-gap);padding-inline-start:0;list-style:none;display:flex}.project-view-module__Chc-zq__tag{padding-block:var(--space-x-small);padding-inline:var(--space-small);border-radius:var(--radius-small);background-color:var(--color-surface-tag);color:var(--color-text-tag);font-size:var(--font-size-xx-small);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-loose)}.project-view-module__Chc-zq__links{gap:var(--space-small);flex-wrap:wrap;margin-block-start:var(--space-large);padding-inline-start:0;list-style:none;display:flex}.project-view-module__Chc-zq__primary,.project-view-module__Chc-zq__secondary{gap:var(--space-small);padding-block:var(--space-small);padding-inline:var(--space-medium);border-radius:var(--radius-pill);box-shadow:var(--shadow-raised);font-size:var(--font-size-x-small);font-weight:var(--font-weight-medium);overflow-wrap:anywhere;align-items:center;text-decoration-line:none;display:inline-flex}.project-view-module__Chc-zq__primary{border:1px solid var(--color-accent);background-color:var(--color-accent);color:var(--color-on-accent)}.project-view-module__Chc-zq__secondary{border:1px solid var(--color-border-accent);background-color:var(--color-surface-card)}.project-view-module__Chc-zq__primary:hover,.project-view-module__Chc-zq__primary:focus-visible{border-color:var(--color-accent-hover);background-color:var(--color-accent-hover)}.project-view-module__Chc-zq__secondary:hover,.project-view-module__Chc-zq__secondary:focus-visible{border-color:var(--color-border-accent-hover);background-color:var(--color-surface-hover)}.project-view-module__Chc-zq__caseLinks{display:none}.project-view-module__Chc-zq__text:has(.project-view-module__Chc-zq__caseChoice:checked) .project-view-module__Chc-zq__overviewOnly{display:none}.project-view-module__Chc-zq__text:has(.project-view-module__Chc-zq__caseChoice:checked) .project-view-module__Chc-zq__caseLinks{display:flex}.project-view-module__Chc-zq__figure{flex-direction:column;margin:0;display:flex}.project-view-module__Chc-zq__media{aspect-ratio:var(--project-view-box-ratio);border-radius:var(--radius-large);align-self:stretch}.project-view-module__Chc-zq__caption{color:var(--color-text-faint);font-size:var(--font-size-xxx-small);text-align:center;margin-block-start:var(--space-small)}.project-view-module__Chc-zq__pictures{flex-direction:column;display:flex}.project-view-module__Chc-zq__pick{appearance:none;block-size:0;inline-size:0;margin:0}.project-view-module__Chc-zq__pick:focus-visible{outline:none}.project-view-module__Chc-zq__pick:not(:checked)+.project-view-module__Chc-zq__figure{display:none}.project-view-module__Chc-zq__pick:focus-visible+.project-view-module__Chc-zq__figure .project-view-module__Chc-zq__media{outline:var(--focus-outline-width) solid var(--color-focus);outline-offset:var(--focus-outline-offset)}.project-view-module__Chc-zq__pictureCaption{display:none}.project-view-module__Chc-zq__thumbnails{justify-content:center;align-items:flex-end;row-gap:var(--space-small);isolation:isolate;flex-wrap:wrap;margin-block-start:var(--space-medium);padding-inline-start:var(--project-view-thumbnail-overlap);display:flex}.project-view-module__Chc-zq__thumbnail{--raised:calc(var(--pointing,0) * var(--pointed,0) + (1 - var(--pointing,0)) * var(--chosen,0));z-index:var(--raised);gap:var(--space-x-small);cursor:pointer;flex-direction:column;flex-shrink:0;align-items:center;margin-inline-start:var(--project-view-thumbnail-overlap-back);display:inline-flex;position:relative}:is(.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:first-of-type:checked) .project-view-module__Chc-zq__thumbnail:first-of-type,.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(2):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(2),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(3):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(3),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(4):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(4),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(5):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(5),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(6):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(6),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(7):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(7),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(8):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(8),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(9):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(9),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(10):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(10),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(11):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(11),.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__pick:nth-of-type(12):checked) .project-view-module__Chc-zq__thumbnail:nth-of-type(12)){--chosen:1}.project-view-module__Chc-zq__thumbnail:hover{--pointed:1}.project-view-module__Chc-zq__pictures:has(.project-view-module__Chc-zq__thumbnail:hover){--pointing:1}.project-view-module__Chc-zq__thumbnailName{inline-size:var(--project-view-thumbnail-width);color:var(--color-text-faint);font-size:var(--font-size-xxx-small);text-align:center;overflow-wrap:anywhere;opacity:var(--raised)}.project-view-module__Chc-zq__thumbnailImage{box-sizing:border-box;inline-size:var(--project-view-thumbnail-width);block-size:var(--project-view-thumbnail-height);border:var(--project-view-thumbnail-edge) solid var(--color-surface-card);border-radius:var(--project-view-thumbnail-radius);box-shadow:var(--shadow-thumbnail);object-fit:cover}.project-view-module__Chc-zq__thumbnail:hover .project-view-module__Chc-zq__thumbnailImage{border-color:var(--color-accent)}@media (prefers-reduced-motion:no-preference){.project-view-module__Chc-zq__thumbnail{translate:0 calc(var(--raised) * var(--project-view-thumbnail-lift-back));transition-property:translate;transition-duration:var(--hover-transition)}.project-view-module__Chc-zq__thumbnailName{transition-property:opacity;transition-duration:var(--hover-transition)}}.project-view-module__Chc-zq__neighbours{gap:var(--project-neighbour-gap);border-block-start:1px solid var(--color-border);grid-template-columns:minmax(0,1fr);margin-block-start:var(--space-boundary);padding-block-start:var(--space-heading);display:grid}.project-view-module__Chc-zq__neighbour{gap:var(--project-neighbour-mark-gap);padding:var(--space-medium);border:1px solid var(--color-border);border-radius:var(--radius-large);background-color:var(--color-surface-card);color:var(--color-text-heading);align-items:center;text-decoration-line:none;display:flex}.project-view-module__Chc-zq__next{text-align:right;justify-content:flex-end}.project-view-module__Chc-zq__half{display:none}.project-view-module__Chc-zq__neighbourText{overflow-wrap:anywhere;flex-direction:column;display:flex}.project-view-module__Chc-zq__direction{color:var(--color-text-faint);font-size:var(--font-size-xxxx-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-x-loose);text-transform:uppercase}.project-view-module__Chc-zq__neighbourMark{font-size:var(--font-size-large);flex-shrink:0;display:inline-flex}.project-view-module__Chc-zq__neighbour:hover,.project-view-module__Chc-zq__neighbour:focus-visible{border-color:var(--color-border-accent-hover);background-color:var(--color-surface-hover);color:var(--color-accent)}@media (min-width:48em){.project-view-module__Chc-zq__columns{column-gap:var(--space-boundary);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.project-view-module__Chc-zq__name{font-size:var(--font-size-project-title)}.project-view-module__Chc-zq__neighbours{grid-template-columns:repeat(2,minmax(0,1fr))}.project-view-module__Chc-zq__half{display:block}}
.section-module__NH9VEq__section{border-block-start:1px solid var(--color-border);padding-block:var(--space-boundary);margin-block-start:0}.section-module__NH9VEq__section:last-child{padding-block-end:var(--page-padding-block-end)}.section-module__NH9VEq__section:nth-of-type(2n){background-color:var(--color-surface-band)}.section-module__NH9VEq__heading{align-items:center;gap:var(--space-medium);display:flex}.section-module__NH9VEq__heading:after{content:"";border-block-start:1px solid var(--color-rule);flex:1}.section-module__NH9VEq__opening>*+*{margin-block-start:var(--space-heading)}.section-module__NH9VEq__opening+*{margin-block-start:var(--space-item)}@media print{.section-module__NH9VEq__opening{break-inside:avoid}.section-module__NH9VEq__breakable{break-inside:auto}.section-module__NH9VEq__section,.section-module__NH9VEq__section:last-child{margin-block-start:var(--space-boundary);padding-block-end:0}}
.skills-module__L0xJbW__row+.skills-module__L0xJbW__row,.skills-module__L0xJbW__group+.skills-module__L0xJbW__group{margin-block-start:var(--space-item)}.skills-module__L0xJbW__group>*+*{margin-block-start:var(--space-flow)}.skills-module__L0xJbW__name{font-size:var(--font-size-xx-small);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-x-loose);text-transform:uppercase}.skills-module__L0xJbW__level{color:var(--color-text-secondary);font-size:var(--font-size-x-small)}.skills-module__L0xJbW__skills{line-height:var(--line-height-prose-small);margin-block-start:var(--space-small);display:block}.skills-module__L0xJbW__badge{padding-block:var(--space-x-small);padding-inline:var(--space-small);border-radius:var(--radius-small);font-size:var(--font-size-xxxx-small);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-x-loose);text-transform:uppercase;display:inline-block}.skills-module__L0xJbW__advanced{background-color:var(--color-surface-level-advanced);color:var(--color-text-level-advanced)}.skills-module__L0xJbW__proficient{background-color:var(--color-surface-level-proficient);color:var(--color-text-level-proficient)}.skills-module__L0xJbW__basic{background-color:var(--color-surface-level-basic);color:var(--color-text-level-basic)}@media (min-width:48em),print{.skills-module__L0xJbW__row{column-gap:var(--space-large);grid-template-columns:repeat(2,1fr);align-items:start;display:grid}.skills-module__L0xJbW__group+.skills-module__L0xJbW__group{margin-block-start:0}}@media print{.skills-module__L0xJbW__group{break-inside:avoid}}
