*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.mr-2{margin-right:.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.w-3{width:.75rem}.w-4{width:1rem}.w-8{width:2rem}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping{animation:1s cubic-bezier(0,0,.2,1) infinite ping}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-full{border-radius:9999px}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.text-link{--tw-text-opacity:1;color:oklch(var(--color-link) / var(--tw-text-opacity,1))}.opacity-75{opacity:.75}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-ink:96.2661% .012903 141.812;--color-ink-soft:84.4929% .030028 150.033;--color-paper:31.9858% .04975 174.405;--color-paper-strong:37.7287% .054037 173.282;--color-edge:58.5915% .044967 168.199;--color-bg-page:31.9858% .04975 174.405;--color-glow:94.2481% .042949 153.695}html{scrollbar-gutter:stable;background:oklch(var(--color-bg-page));scroll-padding-top:2rem}body{background:oklch(var(--color-bg-page));min-block-size:100dvh;color:oklch(var(--color-ink));font-family:var(--font-workshop-body), sans-serif;font-size-adjust:from-font;-webkit-font-smoothing:antialiased;margin:0;font-size:.875rem;line-height:1.85}h1,h2,h3,p{margin:0}h1,h2,h3{font-size:inherit;text-wrap:balance;font-weight:600}p{text-wrap:pretty}a{color:inherit;text-decoration-thickness:1px;-webkit-text-decoration-color:oklch(var(--color-edge) / .35);text-decoration-color:oklch(var(--color-edge) / .35);text-underline-offset:.25em}a:hover{color:oklch(var(--color-ink));text-decoration-color:currentColor}button{font:inherit}:focus-visible{outline-offset:5px;outline:2px solid}::selection{color:oklch(var(--color-bg-page));background:oklch(var(--color-ink))}.portfolio{inline-size:min(100% - 3rem,46rem);margin-inline:auto;padding-block:4.5rem 2rem}.portfolio-header{margin-block-end:3.5rem}.header-topline{justify-content:space-between;align-items:start;gap:1.5rem;display:flex}h1{letter-spacing:-.05em;font-size:clamp(1.25rem,3.5vw,1.6rem);line-height:1.5}.header-utilities{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.theme-toggle{min-block-size:2rem;min-inline-size:1.75rem;color:oklch(var(--color-ink-soft));cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:oklch(var(--color-ink))}.intro-role{margin-block-start:.625rem}.intro-location{color:oklch(var(--color-ink-soft));margin-block-start:.5rem;font-size:.8125rem}.intro-profile{margin-block-start:1rem}.portfolio-nav{color:oklch(var(--color-ink-soft));flex-wrap:wrap;gap:.5rem 1.5rem;margin-block-start:1.25rem;font-size:.75rem;display:flex}.portfolio-nav a,.text-link{padding-block:.25rem;text-decoration-line:underline;display:inline-block}.portfolio-section+.portfolio-section{margin-block-start:3.25rem}.portfolio-section h2{border-block-end:1px solid oklch(var(--color-edge) / .15);margin-block-end:1.5rem;padding-block-end:.75rem;font-size:1rem}.entry-list{gap:1.75rem;display:grid}.entry-period{color:oklch(var(--color-ink-soft));margin-block-start:.25rem;font-size:.75rem}.entry-description{color:oklch(var(--color-ink-soft));margin-block-start:.625rem}.experience-entry h3 a,.achievement-entry h3 a{text-decoration-line:underline}.project-links,.contact-links{flex-wrap:wrap;gap:.25rem 1.25rem;margin:.5rem 0 0;padding:0;font-size:.75rem;list-style:none;display:flex}.project-links a,.contact-links a{padding-block:.25rem;text-decoration-line:underline;display:inline-block}.project-links span,.contact-links span,.text-link span{color:oklch(var(--color-ink-soft))}.education-institution{color:oklch(var(--color-ink-soft));margin-block-start:.25rem}.text-link{margin-block-start:.5rem;font-size:.75rem}.contact-email-row{align-items:center;gap:.5rem;display:flex}.contact-email{overflow-wrap:anywhere;min-inline-size:0}.contact-email a{text-decoration-line:underline}.copy-email-button{block-size:2.75rem;inline-size:2.75rem;color:oklch(var(--color-ink-soft));cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:.5rem;flex-shrink:0;place-items:center;padding:0;display:grid;position:relative}.copy-email-button:before{content:"";background:oklch(var(--color-ink) / .07);opacity:0;border-radius:.375rem;position:absolute;inset:.375rem}.copy-email-button:focus-visible{color:oklch(var(--color-ink));outline:none}.copy-email-button:focus-visible:before,.copy-email-button[data-copied=true]:before{opacity:1}.copy-email-button:focus-visible:before{outline-offset:1px;outline:2px solid}@media (forced-colors:active){.copy-email-button:focus-visible:before{outline-color:highlight}}.copy-email-control{flex-shrink:0;display:inline-flex;position:relative}.copy-email-button:hover,.copy-email-button[data-copied=true]{color:oklch(var(--color-ink))}.copy-email-icon{opacity:1;filter:blur();grid-area:1/1;display:inline-flex;position:relative;scale:1}.copy-email-icon--check,.copy-email-button[data-copied=true] .copy-email-icon--copy{opacity:0;filter:blur(4px);scale:.25}.copy-email-button[data-copied=true] .copy-email-icon--check{opacity:1;filter:blur();scale:1}.copy-email-check path{stroke-dasharray:1;stroke-dashoffset:1px}.copy-email-button[data-copied=true] .copy-email-check path{stroke-dashoffset:0}.copy-email-feedback{z-index:2;border:1px solid oklch(var(--color-edge) / .5);background:oklch(var(--color-paper-strong));inline-size:max-content;max-inline-size:12rem;color:oklch(var(--color-ink));pointer-events:none;opacity:0;visibility:hidden;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1.5;position:absolute;inset-block-end:calc(100% + .125rem);inset-inline-end:.125rem;translate:0 2px}.copy-email-control[data-copied=true] .copy-email-feedback{opacity:1;visibility:visible;translate:0}.copy-email-control:has(.copy-email-button:focus-visible) .copy-email-feedback{opacity:1;visibility:visible;translate:0}@media (hover:hover){.copy-email-button:hover:before{opacity:1}.copy-email-control:hover .copy-email-feedback{opacity:1;visibility:visible;translate:0}}.copy-email-message{color:oklch(var(--color-ink-soft));margin-block-start:.5rem;font-size:.75rem}.portfolio-footer{border-block-start:1px solid oklch(var(--color-edge) / .15);color:oklch(var(--color-ink-soft));flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-block-start:3.5rem;padding-block-start:1.25rem;font-size:.6875rem;display:flex}.skip-link{z-index:100;background:oklch(var(--color-paper));border:1px solid;padding:.5rem 1rem;position:fixed;inset-block-start:1rem;inset-inline-start:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (max-width:600px){.portfolio{inline-size:min(100% - 2.5rem,46rem);padding-block-start:2rem}.header-topline{flex-direction:column-reverse;gap:1rem}.header-utilities{align-self:end}.portfolio-header{margin-block-end:2.75rem}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.copy-email-icon{transition:opacity .15s cubic-bezier(.2,0,0,1),scale .3s cubic-bezier(.2,0,0,1),filter .3s cubic-bezier(.2,0,0,1)}.copy-email-button{transition:scale .15s cubic-bezier(.2,0,0,1)}.copy-email-button:active{scale:.96}.copy-email-button:before{transition:opacity .12s}.copy-email-check path{transition:stroke-dashoffset .18s cubic-bezier(.2,0,0,1) 80ms}.copy-email-feedback{transition:opacity .12s,translate .12s,visibility .12s}}
.workshop{--w-ink:oklch(var(--color-ink));--w-muted:oklch(var(--color-ink-soft));--w-edge:oklch(var(--color-edge));--w-surface:oklch(var(--color-paper-strong));--w-gutter:clamp(1.375rem, 5vw, 5.5rem);--w-section-gap:clamp(3.5rem, 6vw, 6rem);--w-column-gap:clamp(2rem, 6vw, 6rem);min-block-size:100dvh;font-family:var(--font-workshop-body), sans-serif;font-size:1.125rem;line-height:1.55}.workshop *,.workshop :before,.workshop :after{box-sizing:border-box}.workshop h1,.workshop h2,.workshop h3{font-family:var(--font-workshop-display), sans-serif;letter-spacing:-.035em;font-weight:500;line-height:1.1}.workshop h1{letter-spacing:-.055em;overflow-wrap:break-word;font-size:clamp(3.25rem,1.5rem + 7.7vw,10rem);line-height:.98}.workshop a,.workshop a:hover{color:inherit}.workshop ul{margin:0;padding:0;list-style:none}.workshop section[id]{scroll-margin-block-start:2rem}.w-muted{color:var(--w-muted)}.w-small{font-size:.9375rem}.w-container{inline-size:min(100%,92rem);padding-inline:var(--w-gutter);margin-inline:auto}.w-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2rem;padding-block:1.5rem;display:grid}.w-hero{font-size-adjust:none;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:2rem;padding-block:clamp(4rem,8vw,8rem) 2.5rem;display:grid;position:relative}.w-hero h1{letter-spacing:-.065em;text-wrap:initial;font-size:clamp(3.5rem,1.5rem + 6.75vw,7.75rem);line-height:.99}.w-hero h1 span{display:block}.w-identity{align-items:center;gap:.875rem;min-inline-size:0;margin-block-start:1.75rem;font-size:1rem;display:flex}.w-hero-description{color:var(--w-muted);text-wrap:balance;max-inline-size:54ch;margin-block-start:.75rem;font-size:1rem}.w-work,.w-background{padding-block-start:var(--w-section-gap)}.w-experience{padding-block-start:clamp(1rem,2vw,1.5rem)}.w-experience-heading{justify-content:space-between;align-items:center;gap:1.5rem;margin-block-end:1rem;display:flex}.workshop .w-experience-heading .w-section-title{color:var(--w-muted);margin:0}.w-experience-heading a{text-decoration:none}.w-experience-heading a:hover{text-decoration:underline}.w-company-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 2rem;display:grid}.w-company-link{-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;min-block-size:5rem;text-decoration:none;display:flex}.w-company-logo{inline-size:var(--company-width);border-radius:2px;max-inline-size:100%;display:grid}.w-company-mark{grid-area:1/1;block-size:auto;inline-size:100%;display:block}.w-company-mark--mono{filter:brightness(0)invert();opacity:.72}.w-company-mark--color{opacity:0}.w-company-link:focus-visible{outline:none}.w-company-link:focus-visible .w-company-logo{outline-offset:6px;outline:2px solid}.w-company-link:is(:focus-visible,:active) .w-company-mark--mono{opacity:0}.w-company-link:is(:focus-visible,:active) .w-company-mark--color{opacity:1}@media (hover:hover){.w-company-link:hover .w-company-mark--mono{opacity:0}.w-company-link:hover .w-company-mark--color{opacity:1}}.w-background-grid{gap:var(--w-column-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.w-background-grid h3{letter-spacing:-.025em;text-wrap:initial;align-items:center;min-block-size:2.75rem;font-size:clamp(1.5rem,1.25rem + .8vw,2rem);line-height:1.2;display:flex}.w-background-grid h3 a{align-items:center;gap:.75rem;min-block-size:2.75rem;text-decoration:none;display:inline-flex}.w-background-grid h3 a:hover{text-decoration:underline}.w-background-grid h3 svg{flex:none}.w-background-grid p{max-inline-size:48ch;color:var(--w-muted);margin-block-start:.625rem;font-size:1rem}.w-background-grid .w-background-meta{margin-block-start:.375rem;font-size:.875rem}.w-background-grid .w-background-detail{margin-block-start:1.25rem}.w-wordmark{min-block-size:2.75rem;font-family:var(--font-workshop-display), sans-serif;letter-spacing:-.08em;border-radius:.25rem;justify-self:start;align-items:center;font-size:2rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.w-wordmark-filters{pointer-events:none;position:absolute}.w-wordmark-text{filter:url(#wordmark-inner-glow);display:block}.w-wordmark-glow{flood-color:color-mix(in srgb, oklch(var(--color-glow)), white 65%);flood-opacity:.18}a.w-wordmark:focus-visible .w-wordmark-glow{flood-opacity:.42}a.w-wordmark:focus-visible,.w-portrait:focus-visible{outline-offset:3px}.workshop .theme-toggle{min-block-size:2.75rem;min-inline-size:2.75rem;color:var(--w-ink)}.w-portrait{aspect-ratio:1;background:var(--w-surface);cursor:zoom-in;-webkit-tap-highlight-color:transparent;border:0;border-radius:.25rem;flex:0 0 3rem;inline-size:3rem;padding:0;position:relative;overflow:clip}.w-portrait:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px oklch(var(--color-ink) / .12);pointer-events:none;position:absolute;inset:0}.w-portrait img{block-size:auto;inline-size:165%;max-inline-size:none;display:block;position:absolute;inset-block-start:-80%;inset-inline-start:-20%}.w-portrait-dialog{background:var(--w-surface);max-block-size:none;inline-size:min(26rem,100vw - 3rem,75dvh - 4.5rem);max-inline-size:none;color:var(--w-ink);border:0;border-radius:.5rem;outline:none;margin:auto;padding:0;position:fixed;inset:0;overflow:visible;box-shadow:0 2px 8px #0000001f,0 24px 80px #00000059}.w-portrait-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05110eb3}.w-portrait-photo{aspect-ratio:3/4;border-radius:inherit;overflow:clip}.w-portrait-photo img{-o-object-fit:cover;object-fit:cover;block-size:100%;inline-size:100%;display:block}.w-portrait-close{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;background:#05110ea6;border:1px solid #ffffff1f;border-radius:50%;place-items:center;block-size:2.75rem;inline-size:2.75rem;padding:0;display:grid;position:absolute;inset-block-start:.75rem;inset-inline-end:.75rem}.w-portrait-close:focus-visible{outline-offset:-4px}html:has(.w-portrait-dialog[open]){overflow:hidden}@media (hover:hover){a.w-wordmark:hover .w-wordmark-glow{flood-opacity:.42}.w-portrait:hover:after{box-shadow:inset 0 0 0 1px oklch(var(--color-ink) / .35)}.w-portrait-close:hover{background:#05110ed9}}.w-text-link{align-items:center;gap:.75rem;min-block-size:2.75rem;font-size:1rem;text-decoration:underline;display:inline-flex}.workshop .w-section-title{font-family:var(--font-workshop-body), sans-serif;letter-spacing:0;margin-block-end:1.75rem;font-size:1.0625rem;line-height:1.5}.workshop .w-work>.w-section-title{color:var(--w-muted)}.w-project{grid-template-columns:minmax(0,1fr) minmax(8rem,auto) auto;align-items:center;gap:.5rem 3rem;padding-block:clamp(1.625rem,3vw,2.5rem);text-decoration:none;display:grid}.w-work-index>li+li .w-project{border-block-start:1px solid oklch(var(--color-edge) / .45)}.w-work-index>li:first-child .w-project{padding-block-start:0}.w-work-index>li:last-child .w-project{padding-block-end:0}.w-project h3{font-size:clamp(1.875rem,1.5rem + 1.5vw,3.25rem)}.w-project p{color:var(--w-muted);max-inline-size:54ch;margin-block-start:.5rem;font-size:1rem}.w-project-highlight{color:var(--w-muted);font-size:.9375rem}.w-project:hover h3{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.w-project-arrow{justify-self:end}.w-testimonials-inner{padding-block-start:var(--w-section-gap)}.w-testimonials-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-block-end:1.75rem;display:flex}.workshop .w-testimonials-heading .w-section-title{color:var(--w-muted);margin:0}.w-testimonial-tabs{gap:.25rem;margin-inline:-.375rem;display:flex}.w-testimonial-tab{block-size:2.75rem;inline-size:2.75rem;color:var(--w-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:.375rem;place-items:center;padding:0;display:grid;position:relative}.w-testimonial-tab img{-o-object-fit:cover;object-fit:cover;outline-offset:-1px;opacity:.55;border-radius:.25rem;outline:1px solid #ffffff1a;outline:1px solid lab(100% 0 0/.1);block-size:2rem;inline-size:2rem}.w-testimonial-tab:after{content:"";opacity:0;background:currentColor;border-radius:1px;block-size:2px;inline-size:.625rem;position:absolute;inset-block-end:-.25rem}.w-testimonial-tab[aria-selected=true] img,.w-testimonial-tab[aria-selected=true]:after,.w-testimonial-tab:focus-visible img{opacity:1}.w-testimonial-tab:focus-visible{outline:none}.w-testimonial-tab:focus-visible img{outline:2px solid var(--w-ink);outline-offset:2px}.w-testimonial-quotes{inline-size:min(100%,48rem)}.w-testimonial-panel{min-inline-size:0}.w-testimonial-panel[hidden]{display:none}.w-testimonial-panel figure{margin:0}.w-testimonial-panel blockquote{font-family:var(--font-workshop-display), sans-serif;letter-spacing:-.025em;text-wrap:pretty;margin:0;font-size:clamp(1.5rem,1rem + 1.4vw,2.25rem);font-weight:450;line-height:1.4}.w-quote-mark{block-size:auto;inline-size:clamp(1.5rem,2.2vw,2rem);color:var(--w-muted);margin-block-end:.75rem;display:block}.w-testimonial-panel figcaption{gap:.125rem;margin-block-start:1.75rem;font-size:.9375rem;line-height:1.5;display:grid}.w-testimonial-role{color:var(--w-muted);font-size:.875rem}@media (hover:hover){.w-testimonial-tab:hover img{opacity:1}}.w-contact{gap:var(--w-column-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;padding-block:clamp(4rem,7vw,7rem) 3rem;display:grid}.w-contact h2{font-size:clamp(2.75rem,2rem + 2.5vw,4.5rem)}.workshop .contact-email-row{align-items:start;gap:.5rem}.workshop .contact-email{font-size:1.125rem;line-height:1.5}.workshop .contact-email a{align-items:center;min-block-size:2.75rem;max-inline-size:100%;display:inline-flex}.workshop .copy-email-message{color:var(--w-muted);font-size:.9375rem}.w-socials{flex-wrap:wrap;gap:1.5rem;display:flex;margin-block-start:1rem!important}.w-socials a,.w-evidence-links a{align-items:center;gap:.375rem;min-block-size:2.75rem;display:inline-flex}.w-socials a{font-size:.9375rem}.w-footer{color:var(--w-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.5rem;font-size:.875rem;display:flex}.w-footer a{align-items:center;min-block-size:2.75rem;display:inline-flex}.w-footer-links{align-items:center;gap:2rem;display:flex}.w-page-heading{padding-block:3rem}.w-page-heading h1{font-size:clamp(3rem,1.5rem + 6vw,8rem);line-height:1.05}.w-page-deck{max-inline-size:42ch;color:var(--w-muted);margin-block-start:1.5rem;font-size:clamp(1.25rem,1rem + 1vw,2rem)}.w-case{padding-block:1.5rem 0}.w-back-link{margin-block-start:.5rem}.w-case-facts{border-block:1px solid var(--w-edge);grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-block:0 3.5rem;padding-block:2rem;display:grid}.w-case-facts dt{color:var(--w-muted);margin-block-end:.5rem;font-size:.9375rem}.w-case-facts dd{margin:0;font-size:1.125rem}.w-case-body{gap:2.5rem;max-inline-size:56rem;display:grid}.w-case-body section{grid-template-columns:10rem minmax(0,1fr);align-items:baseline;gap:1rem 2.5rem;display:grid}.w-case-body h2{font-family:var(--font-workshop-body), sans-serif;letter-spacing:0;font-size:1.125rem;line-height:1.55}.w-case-body p{max-inline-size:54ch}.w-project-overview{text-wrap:pretty;gap:1.5rem;display:grid}.w-evidence-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.5rem;display:grid}.w-evidence-links svg{flex:none}.w-next-project{border-block:1px solid var(--w-edge);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1rem;margin-block-start:4rem;padding-block:2rem;text-decoration:none;display:grid}.w-next-project strong{font-family:var(--font-workshop-display), sans-serif;letter-spacing:-.035em;grid-row:2;font-size:clamp(1.75rem,1.5rem + 1vw,3rem);font-weight:500;line-height:1.2}.w-next-project svg{grid-area:1/2/3}.w-next-project:hover strong{text-underline-offset:.2em;text-decoration:underline}@media (prefers-reduced-motion:no-preference){.w-company-logo{transition:translate .15s cubic-bezier(.2,0,0,1),scale .15s cubic-bezier(.2,0,0,1)}.w-company-link:focus-visible .w-company-logo{translate:0 -2px}@media (hover:hover){.w-company-link:hover .w-company-logo{translate:0 -2px}}.w-company-mark{transition:opacity .15s cubic-bezier(.2,0,0,1)}.w-company-link:active .w-company-logo{translate:0;scale:.96}.w-testimonial-panel:not([hidden]){animation:.16s ease-out testimonial-enter}.w-testimonial-tab{transition:scale .15s cubic-bezier(.2,0,0,1)}.w-testimonial-tab:active{scale:.96}.w-testimonial-tab img,.w-testimonial-tab:after{transition:opacity .15s cubic-bezier(.2,0,0,1)}@keyframes testimonial-enter{0%{opacity:0}to{opacity:1}}.w-hero h1>span{animation:.65s cubic-bezier(.16,1,.3,1) backwards hero-settle}.w-hero h1>span:nth-child(2){animation-delay:70ms}.w-hero-description{animation:.65s cubic-bezier(.16,1,.3,1) .12s backwards hero-settle}@keyframes hero-settle{0%{translate:0 10px}to{translate:none}}a.w-wordmark .w-wordmark-text,.w-portrait{transition:translate .15s cubic-bezier(.2,0,0,1),scale .15s cubic-bezier(.2,0,0,1)}a.w-wordmark .w-wordmark-glow{transition:flood-opacity .15s cubic-bezier(.2,0,0,1)}.w-portrait:after{transition:box-shadow .15s cubic-bezier(.2,0,0,1)}a.w-wordmark:focus-visible .w-wordmark-text{translate:0 -2px}a.w-wordmark:active .w-wordmark-text,.w-portrait:active,.w-portrait-close:active{scale:.96}.w-portrait-close{transition:background-color .15s cubic-bezier(.2,0,0,1),scale .15s cubic-bezier(.2,0,0,1)}.w-portrait-dialog{opacity:0;transition:opacity .24s cubic-bezier(.2, 0, 0, 1), scale .24s cubic-bezier(.2, 0, 0, 1), display .24s allow-discrete, overlay .24s allow-discrete;scale:.96}.w-portrait-dialog[open]{opacity:1;scale:1}.w-portrait-dialog::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:background-color .24s cubic-bezier(.2, 0, 0, 1), backdrop-filter .24s cubic-bezier(.2, 0, 0, 1), display .24s allow-discrete, overlay .24s allow-discrete;background:#05110e00}.w-portrait-dialog[open]::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05110eb3}@starting-style{.w-portrait-dialog[open]{opacity:0;scale:.96}.w-portrait-dialog[open]::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#05110e00}}.w-project-arrow,.w-next-project>svg,.w-text-link>svg{transition:translate .15s cubic-bezier(.2,0,0,1)}@media (hover:hover){a.w-wordmark:hover .w-wordmark-text{translate:0 -2px}.w-portrait:hover{translate:0 -1px}.w-project:hover .w-project-arrow,.w-next-project:hover>svg{translate:2px -2px}}}@media (max-width:68rem){.w-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.w-hero h1{font-size:clamp(3.5rem,1rem + 6.5vw,6rem)}}@media (max-width:44rem){.w-hero{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding-block:2.5rem 1.5rem}.w-hero h1{font-size:clamp(3.75rem,1.5rem + 10vw,6rem)}.w-hero-description{margin-block-start:1rem;font-size:.9375rem}.w-experience-heading{gap:1rem}.w-experience-heading a{gap:.5rem;font-size:.9375rem}.w-company-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 2rem}.w-company-link{min-block-size:4.5rem}.w-background-grid{grid-template-columns:minmax(0,1fr);gap:2.75rem}.w-header{grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;padding-block:1rem}.w-wordmark{font-size:1.75rem}.workshop .w-section-title{margin-block-end:1.25rem}.w-project{grid-template-columns:minmax(0,1fr) auto;gap:.625rem 1rem;padding-block:1.5rem}.w-project h3{font-size:1.75rem}.w-project p{font-size:.9375rem}.w-project-highlight{grid-area:2/1;font-size:.875rem}.w-project-arrow{grid-area:1/2/3}.w-contact{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding-block:3.5rem 2rem}.w-contact h2{font-size:3rem}.workshop .contact-email{font-size:clamp(.875rem,.375rem + 2.5vw,1.125rem)}.w-footer{padding-block:1rem;font-size:.8125rem}.w-case{padding-block-start:1rem}.w-page-heading{padding-block:2rem 2.5rem}.w-page-heading h1{font-size:clamp(2.75rem,1.25rem + 7vw,5rem)}.w-case-facts{gap:1.5rem;margin-block-end:2.5rem;padding-block:1.5rem}.w-case-facts dd{font-size:1rem}.w-case-body{gap:2rem}.w-case-body section{grid-template-columns:minmax(0,1fr);gap:.75rem}.w-evidence-links{grid-template-columns:minmax(0,1fr)}.w-next-project{margin-block-start:3rem;padding-block:1.5rem}}@media (max-width:24rem){.w-case-facts{grid-template-columns:minmax(0,1fr)}}@media (forced-colors:active){.w-company-logo{forced-color-adjust:none;background:#fff}.w-company-mark--color{display:none}.w-company-link:is(:hover,:focus-visible,:active) .w-company-mark--mono,.w-company-mark--mono{opacity:1;filter:brightness(0);forced-color-adjust:none}.w-company-link:focus-visible .w-company-logo{outline-color:highlight}.w-testimonial-tab[aria-selected=true]{color:highlight;border-block-end:2px solid highlight}.w-testimonial-tab:focus-visible img{outline-color:highlight}.w-wordmark-text{filter:none}.workshop :focus-visible{outline-color:highlight}}
.w-zero-scene{aspect-ratio:620/380;perspective:1000px;-webkit-tap-highlight-color:transparent;border-radius:1rem;inline-size:100%;margin-block:1.5rem;display:block;position:relative}.w-zero-scene:focus-visible{outline-offset:.5rem}.w-zero-arrival{block-size:100%;inline-size:100%;transform-style:preserve-3d;display:block}.w-zero-object{--zero-unit:clamp(.6px, .1vw, 1.5px);block-size:100%;inline-size:100%;transform-style:preserve-3d;pointer-events:none;display:block;position:relative;transform:rotateX(18deg)rotateY(-24deg)rotate(-9deg)}.w-zero-object svg{block-size:100%;inline-size:100%;position:absolute;inset:0;overflow:visible}.w-zero-shadow{fill:#020d08}.w-zero-shadow-cast{opacity:.32;filter:blur(calc(var(--zero-unit) * 7.33));transform:translate3d(calc(var(--zero-unit) * 11.33), calc(var(--zero-unit) * 14.67), calc(var(--zero-unit) * -28))}.w-zero-shadow-contact{opacity:.48;filter:blur(calc(var(--zero-unit) * 1.67));transform:translate3d(calc(var(--zero-unit) * 2), calc(var(--zero-unit) * 3.33), calc(var(--zero-unit) * -20))}.w-zero-layer{transform:translateZ(calc(var(--slice) * var(--zero-unit) * -1))}.w-zero-layer use{stroke:#364d40;stroke-width:.45px;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.w-zero-arrival{animation:1s cubic-bezier(.16,1,.3,1) backwards zero-arrive}@keyframes zero-arrive{0%{transform:translate3d(18px,24px,-24px)rotateY(-10deg)rotate(-4deg)scale(.97)}to{transform:none}}.w-zero-object{transition:transform .6s cubic-bezier(.2,0,0,1)}.w-zero-scene:focus-visible .w-zero-object{transform:rotateX(8deg)rotateY(-12deg)rotate(-5deg)}@media (hover:hover){.w-zero-scene:hover .w-zero-object{transform:rotateX(8deg)rotateY(-12deg)rotate(-5deg)}}}@media (max-width:44rem){.w-zero-scene{inline-size:88%;margin-block:1.75rem .5rem;margin-inline:auto}}@media (forced-colors:active){.w-zero-front use{fill:canvastext;stroke:canvastext}.w-zero-layer,.w-zero-shadow{display:none}}
@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3-5_uhe2g8vfj.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.27tgfqm6_tedn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eba4caf7edd2921-s.2r0cv3f07u_0l.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f6752bd2263820da-s.12_ze2_d4hpxy.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f285987c35230861-s.318-mahh4esyg.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.0yot_wy8hf-md.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ab57efd000576a30-s.p.2q0khlq77_eaw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Fallback;src:local(Arial);ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.0%;size-adjust:96.39%}.inter_tight_567e866f-module__o19F_G__className{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}.inter_tight_567e866f-module__o19F_G__variable{--font-workshop-display:"Inter Tight", "Inter Tight Fallback"}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/da8a9dd0d68e512b-s.22-vvcrakukp_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/94b4a5dc1fe84361-s.2231v6bqe0i5w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/ff5be760267bb4bc-s.3qloo4qyhp26g.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/99596c30eb072d3c-s.2nm8vsxf84ypi.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/e5864b32625b6bc3-s.2xh5j9ig7blp7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/e285ad1a914469f0-s.3ohuq16_8-qtv.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/47df9ba1c7236d3b-s.p.3__uj2j3k64hq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Fallback";src:local(Arial);ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.0%;size-adjust:93.76%}.source_sans_3_841e5d05-module__K4GuLG__className{font-family:"Source Sans 3","Source Sans 3 Fallback";font-style:normal}.source_sans_3_841e5d05-module__K4GuLG__variable{--font-workshop-body:"Source Sans 3", "Source Sans 3 Fallback"}
