@charset "UTF-8";@property --brand-primary{syntax: "<color>"; inherits: true; initial-value: #fdecd1;}@property --brand-secondary{syntax: "<color>"; inherits: true; initial-value: #f0c781;}@font-face{font-family:Graphik;src:url(/Graphik-Regular-Cy-Gr-Web.89bcdd78.woff2) format("woff2"),url(/Graphik-Regular-Cy-Gr-Web.90e3efff.woff) format("woff");font-weight:400;font-style:normal;font-stretch:normal;font-display:swap}@font-face{font-family:Graphik;src:url(/Graphik-Medium-Cy-Gr-Web.8eb7d651.woff2) format("woff2"),url(/Graphik-Medium-Cy-Gr-Web.4600902d.woff) format("woff");font-weight:500;font-style:normal;font-stretch:normal;font-display:swap}:root{--font-sans: "Graphik", -apple-system, BlinkMacSystemFont, "Inter", sans-serif;--type-size: 14px;--type-size-md: 17px;--type-size-lg: 20px;--line-height: 1.6;--line-height-tight: 1.45;--tracking-tight: -.02em;--weight-regular: 400;--weight-medium: 500;--grey1: #080808;--grey2: #555;--grey-media: #eaeaea;--white1: #fff;--white2: #d1d1d1;--text-primary: var(--grey1);--text-secondary: var(--grey2);--text-tertiary: #767676;--text-accent: #BB5B25;--text-inverse: var(--white1);--text-inverse-muted: var(--white2);--backgroundColor: #f9f9fb;--buttonBackground: #fafafa;--buttonBackgroundActive: #ebebeb;--bg-card: rgba(230, 230, 230, .4);--bg-dark: rgba(8, 8, 8, .8);--bg-light: rgba(230, 230, 230, .8);--bg-panel: #f9f9fb;--bg-hover: rgb(0 0 0 / .04);--border: 1px solid #eaeaea;--border-panel-color: rgb(0 0 0 / .07);--border-inverse: 1px solid rgba(255, 255, 255, .2);--blur: blur(32px) saturate(140%);--fade-duration: .2s;--fade-easing: cubic-bezier(.4, 0, .2, 1);--button-rim-width: 1.4px;--text-underline-width: 1px;--secondaryBorderColor: #f2f2f2;--browser-chrome-hairline: #ebebeb;--radius-sm: 4px;--radius-lg: 8px;--radius-avatar: 9999px;--unit-2: 2px;--unit-4: 4px;--unit-8: 8px;--unit-12: 12px;--unit-16: 16px;--unit-20: 20px;--unit-24: 24px;--unit-28: 28px;--unit-32: 32px;--unit-36: 36px;--unit-40: 40px;--unit-44: 44px;--unit-48: 48px;--unit-52: 52px;--unit-56: 56px;--unit-60: 60px;--unit-64: 64px;--unit-68: 68px;--unit-72: 72px;--unit-76: 76px;--unit-80: 80px;--unit-84: 84px;--unit-88: 88px;--unit-92: 92px;--unit-96: 96px;--unit-100: 100px;--unit-104: 104px;--unit-108: 108px;--unit-112: 112px;--unit-116: 116px;--unit-120: 120px;--unit-124: 124px;--unit-128: 128px;--nudge: var(--unit-2);--text-spacing-tight: var(--unit-16);--text-spacing-standard: var(--unit-28);--source-spacing: var(--unit-12);--block-spacing: var(--unit-64);--header-offset: var(--unit-56);--section-spacing: var(--unit-88);--page-gutter: var(--unit-112);--nav-sd-top-offset: var(--unit-8);--nav-sd-height: calc(var(--unit-12) * 2 + var(--type-size) * var(--line-height-tight));--nav-sd-clearance: calc(var(--nav-sd-top-offset) + var(--nav-sd-height));--grid-gap: var(--unit-16);--page-gutter-y: var(--unit-88);--page-gutter-x: var(--unit-16);--cap-height: var(--page-gutter-y);--dur-instant: .1s;--dur-quick: .12s;--dur-fast: .2s;--dur-base: .3s;--dur-medium: .4s;--dur-slow: .6s;--dur-slide: .55s;--dur-page-tx: 1s;--dur-bg-loop: 20s;--ease-linear: linear;--ease-default: ease;--ease-out: cubic-bezier(0, 0, 0, 1);--ease-light: cubic-bezier(.4, 0, .6, 1);--ease-strong: cubic-bezier(.83, 0, .17, 1);--ease-zip: cubic-bezier(.22, 1, .36, 1);--ease-overshoot: cubic-bezier(.32, .72, 0, 1);--page-tx-ramp: .3s;--page-tx-hold: .4s;--page-tx-fg: .6s}@media screen and (max-width:1079px){:root{--text-spacing-tight: var(--unit-24);--text-spacing-standard: var(--unit-32);--block-spacing: var(--unit-40);--section-spacing: var(--unit-40);--page-gutter-y: var(--unit-40);--page-gutter-x: var(--unit-16);--cap-height: calc(var(--nav-sd-clearance) + var(--unit-32))}}@media screen and (min-width:461px)and (max-width:1079px){:root{--page-gutter-x: var(--unit-40)}}:root{--shadow-pill: 0px 0px 2px rgba(3, 7, 18, .04), 0px 0px 9px rgba(3, 7, 18, .03), 0px 0px 20px rgba(3, 7, 18, .01);--shadow-panel: 0 32px 80px rgb(0 0 0 / .16), 0 4px 16px rgb(0 0 0 / .06);--brand-linkedin: rgb(10, 102, 194);--brand-dribbble: #ea4c89;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}body{--zip-hover-gradient: linear-gradient( 90deg, color-mix(in oklab, var(--brand-primary) 70%, black) 0%, color-mix(in oklab, var(--brand-secondary) 70%, black) 18%, color-mix(in oklab, var(--brand-primary) 70%, black) 34%, transparent 42%, transparent 46%, color-mix(in oklab, var(--brand-secondary) 70%, black) 52%, color-mix(in oklab, var(--brand-primary) 70%, black) 68%, color-mix(in oklab, var(--brand-secondary) 70%, black) 84%, color-mix(in oklab, var(--brand-primary) 70%, black) 100% )}html{background-color:#fff}.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;isolation:isolate}.bg__base{position:absolute;inset:0;z-index:-3;background-image:linear-gradient(in oklch to right,var(--brand-primary) 0%,var(--brand-secondary) 50%,var(--brand-primary) 100%);background-size:200vw 100%;background-repeat:repeat-x;animation:bg-slide var(--dur-bg-loop) var(--ease-linear) infinite;will-change:background-position;transition:--brand-primary .25s ease-out,--brand-secondary .25s ease-out}@property --bg-radial-near{syntax: "<number>"; inherits: true; initial-value: 1;}@property --bg-radial-far{syntax: "<number>"; inherits: true; initial-value: .5;}@property --bg-linear-near{syntax: "<number>"; inherits: true; initial-value: 1;}@property --bg-linear-far{syntax: "<number>"; inherits: true; initial-value: .5;}.bg__fg-radial{position:absolute;inset:0;z-index:-2;background:radial-gradient(circle farthest-corner at 50% 0%,rgb(255,255,255,var(--bg-radial-near)) 0% 25%,rgb(255,255,255,var(--bg-radial-far)))}.bg__fg-linear{position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgb(255,255,255,var(--bg-linear-near)) 0% 25%,rgb(255,255,255,var(--bg-linear-far)))}@keyframes bg-slide{0%{background-position-x:200vw}to{background-position-x:0}}@media(prefers-reduced-motion:reduce){.bg__base{animation:none;transition:none}}*{margin:0;padding:0;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:0;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;background:transparent;box-shadow:none;color:inherit;text-decoration:none}.skip-link:focus-visible{top:var(--unit-16);left:var(--unit-16);z-index:1000;width:auto;height:auto;margin:0;padding:var(--unit-8) var(--unit-12);overflow:visible;clip-path:none;background-color:var(--bg-panel);color:var(--text-primary);font-size:var(--type-size);line-height:var(--line-height-tight);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border-panel-color),var(--shadow-panel);outline:2px solid var(--text-primary);outline-offset:2px}body{position:relative;z-index:1;isolation:isolate;background-color:transparent;min-height:100vh;font-family:var(--font-sans);font-size:var(--type-size);line-height:var(--line-height);color:var(--text-primary);-webkit-text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1}section{margin:0 0 60px}h2{font-size:var(--type-size-lg);font-weight:var(--weight-regular);color:var(--text-primary);max-width:600px}h3{font-size:var(--type-size-lg);font-weight:var(--weight-regular);color:var(--text-primary);max-width:600px;margin:0}h4{font-size:var(--type-size);font-weight:var(--weight-medium);color:var(--text-primary);max-width:600px}p,ul{max-width:600px}.testimonial-attr{font-size:var(--type-size);font-weight:var(--weight-medium);color:var(--text-secondary)}.source-note{font-size:var(--type-size-sm, 14px);color:var(--text-secondary)}.page_container h2{margin:32px 0 16px}body.project-page .page_container article>:is(h1,h2,h3,h4,h5,h6){margin:0}h1{font-size:inherit;font-weight:inherit}h2,h3,h4,h5,h6{line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight)}.text-display{font-size:var(--type-size-lg);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary);max-width:600px}p{color:var(--text-secondary)}.kicker{font-size:var(--type-size);font-weight:var(--weight-regular);color:oklch(from var(--brand-primary) min(l,.42) c h)}:is(p,blockquote,.page_container article li) a{text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}:is(p,blockquote,.page_container article li) a:active{background-color:var(--secondaryBorderColor);border-radius:2px}:is(p,blockquote,.page_container article li) a:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){:is(p,blockquote,.page_container article li) a:hover,[data-zip-on-hover]:hover :is(p,blockquote,.page_container article li) a{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){:is(p,blockquote,.page_container article li) a{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}:is(p,blockquote,.page_container article li) a:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){:is(p,blockquote,.page_container article li) a:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}:is(p,blockquote,.page_container article li) strong{font-weight:500}blockquote{padding-inline-start:1em;border-left:2px solid var(--text-secondary);color:var(--text-secondary);font-size:var(--type-size);line-height:var(--line-height);max-width:600px;margin-bottom:12px}.quote-attr{font-style:normal;font-size:var(--type-size);font-weight:var(--weight-medium);color:var(--text-secondary)}blockquote.quote-emphasis{font-size:var(--type-size-lg);line-height:var(--line-height-tight)}blockquote.quote-standard{font-size:var(--type-size);line-height:var(--line-height)}ul{padding-inline-start:2em;color:var(--text-secondary);margin:16px 0}a{text-decoration:none;color:inherit}header{top:0}header h1,header h2,header p{margin:0}.profile-header{display:flex;flex-direction:row;align-items:center}.profile-header .profile-photo-wrap{align-self:flex-end;margin-right:16px;position:relative}.profile-photo{width:58px;height:58px;margin:0;position:relative;border-radius:var(--radius-avatar);overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,sans-serif}body.home .profile-photo{width:92px;height:92px}.profile-photo img{position:absolute;width:100%;height:100%;object-fit:cover}.profile-social{display:flex;flex-direction:row;align-items:center;gap:0;margin-left:24px}@media(hover:hover)and (pointer:fine){.profile-social [aria-label=LinkedIn]:hover{color:var(--brand-linkedin)}.profile-social [aria-label=Dribbble]:hover{color:var(--brand-dribbble)}}.profile-info{flex:0 0 auto;display:grid}.profile-info .display-name{display:flex;flex-direction:row;align-items:center}.project-nav-btn{overflow:visible}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:var(--unit-8) var(--unit-20);border:0;border-radius:var(--radius-sm);background-color:var(--grey1);color:var(--text-inverse);font-family:inherit;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);text-decoration:none;cursor:pointer;transition:opacity .15s ease}@media(hover:hover)and (pointer:fine){.btn-primary:hover{opacity:.85}}.btn-primary:focus-visible{outline:2px solid var(--grey1);outline-offset:2px}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--unit-8);padding:var(--unit-12) var(--unit-20);border:0;border-radius:var(--radius-sm);background-color:transparent;color:var(--text-primary);font-family:inherit;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn-secondary:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.btn-secondary[aria-expanded=true]{background-color:var(--bg-panel);box-shadow:inset 0 0 0 1px var(--border-panel-color),var(--shadow-panel)}@media(hover:hover)and (pointer:fine){:is(a,button).btn-secondary:hover{background-color:var(--bg-hover)}}:is(a,button).btn-secondary:active{background-color:var(--bg-panel);box-shadow:inset 0 0 0 1px var(--border-panel-color),var(--shadow-panel)}figure.media-full{margin:0;min-width:0}figure.media-full>:first-child{background-color:var(--white1)}figure.media-full img,figure.media-full video{width:100%;display:block;opacity:0;transition:opacity .4s ease}figure.media-full img.is-loaded,figure.media-full video.is-loaded{opacity:1}figure.media-full video[data-autoplay-on-view]{opacity:1}figure.media-full[data-aspect="1:1"]{aspect-ratio:1/1}figure.media-full[data-aspect="1:1"] img,figure.media-full[data-aspect="1:1"] video{width:100%;height:100%;object-fit:cover}.media-caption{font-size:12px;color:var(--text-secondary);margin-top:var(--grid-gap)}@media screen and (max-width:460px){.media-block--pair{display:flex;flex-direction:column;gap:var(--grid-gap)}}.project-nav-btn{position:fixed;top:24px;left:50%;z-index:100;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:64px;height:64px;margin:0;padding:0;border-radius:50%;color:var(--text-primary);text-decoration:none;transform:translate(-50%);cursor:pointer;outline:none;isolation:isolate;touch-action:manipulation;box-shadow:var(--shadow-pill);--rim-fill: var(--buttonBackground);border:var(--button-rim-width) solid transparent;background:var(--buttonBackground);transition:outline .1s ease-out 0s,outline-offset .1s ease-out 0s}.project-nav-btn:before{content:"";position:absolute;inset:calc(-1 * var(--button-rim-width));border-radius:inherit;z-index:0;pointer-events:none;box-sizing:border-box;border:var(--button-rim-width) solid transparent;background:linear-gradient(var(--rim-fill),var(--rim-fill)) padding-box,conic-gradient(from 0deg,transparent 0deg,transparent 20deg,var(--brand-primary) 90deg,var(--brand-secondary) 180deg,var(--brand-primary) 270deg,transparent 340deg,transparent 360deg) border-box;background-clip:padding-box,border-box;opacity:0;transition:opacity .28s ease-out}.project-nav-btn>*{position:relative;z-index:1}.project-nav-btn:focus-visible,.project-nav-btn:active{color:var(--text-primary);outline:none;border-color:transparent;background:var(--buttonBackground)}.project-nav-btn:focus-visible:before,.project-nav-btn:active:before{opacity:1}.project-nav-btn:active{--rim-fill: var(--buttonBackgroundActive);background:var(--buttonBackgroundActive)}@media(hover:hover)and (pointer:fine){.project-nav-btn:hover{--rim-fill: var(--secondaryBorderColor);color:var(--text-primary);outline:none;border-color:transparent}.project-nav-btn:hover:before{opacity:1}}.project-nav-btn{transition:outline .1s ease-out,outline-offset .1s ease-out,opacity .2s ease;-webkit-tap-highlight-color:transparent}@media screen and (max-width:460px){.project-nav-btn{top:12px}}.project-nav-btn:focus{outline:none}html.project-team-panel-open .project-nav-btn,html.project-team-panel-open body.project-page a.project-nav-btn{opacity:0!important;pointer-events:none!important}body.project-page a.project-nav-btn.project-nav-btn--deferred:not(.project-nav-btn--from-site){display:none!important}body.project-page a.project-nav-btn.project-nav-btn--deferred.project-nav-btn--from-site{display:inline-flex!important;visibility:visible;pointer-events:auto}.project-nav-btn__icon{display:block;flex-shrink:0}body.home{max-width:none;margin:0;padding:0}body.home main{margin:0}body.home .page_container{padding:var(--page-gutter-y) var(--page-gutter-x) var(--unit-88)}@media screen and (min-width:1080px){body.home .page_container{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:auto auto 1fr;column-gap:var(--grid-gap)}body.home .page_container>header{grid-column:2/6;grid-row:1}body.home .page_container>.logo-carousel-banner{grid-column:2/6;grid-row:2}body.home .page_container>main{grid-column:2/6;grid-row:3}body.home .page_container>.nav-lg{grid-column:6;grid-row:1/-1;align-self:start;z-index:10}}body.home .page_container>*+*:not(.nav-lg):not(.nav-sd):not(dialog):not(script){margin-top:var(--flow-space, var(--text-spacing-standard))}body.home .page_container>.logo-carousel-banner,body.home .page_container>main{--flow-space: var(--section-spacing)}body.home .profile-info{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--unit-16)}body.home .profile-info h1{font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-primary);margin:0}body.home .profile-info p{color:var(--text-secondary);margin:0}body.home .about{margin-top:var(--unit-16)}body.home .about p{margin:0;max-width:600px}body.home .about p+p{margin-top:var(--text-spacing-standard)}body.home .about a{text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}body.home .about a:active{background-color:var(--secondaryBorderColor);border-radius:2px}body.home .about a:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){body.home .about a:hover,[data-zip-on-hover]:hover body.home .about a{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){body.home .about a{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}body.home .about a:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){body.home .about a:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}.project-list{list-style:none;margin:0;padding:0;max-width:none;display:flex;flex-direction:column;gap:var(--grid-gap)}.project-list>li{margin:0;scroll-margin-top:var(--page-gutter-y)}@media screen and (max-width:1079px){body.home .page_container{display:flex;flex-direction:column;gap:var(--unit-40);padding-top:calc(var(--nav-sd-clearance) + var(--unit-32))}}.page_container{padding:var(--page-gutter-y) var(--page-gutter-x) 0}@media screen and (max-width:1079px){body.project-page .page_container{padding-top:calc(var(--nav-sd-clearance) + var(--unit-32))}}.profile-info .project-header-kickers{display:flex;flex-wrap:wrap;gap:var(--unit-16);margin:var(--unit-8) 0 0;font-size:var(--type-size);font-weight:var(--weight-regular);color:oklch(from var(--brand-primary) min(l,.42) c h)}@media screen and (min-width:1080px){body.project-page .page_container{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:auto 1fr auto;column-gap:var(--grid-gap)}body.project-page .page_container>header{grid-column:2/6}body.project-page .page_container>main{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:subgrid;column-gap:var(--grid-gap)}body.project-page .page_container>main>*{grid-column:2/6}body.project-page .page_container>main>.project-team-toolbar{grid-column:2/6}body.project-page .page_container>main>article{grid-column:1/-1}body.project-page .page_container>footer{grid-column:2/6;grid-row:3}}@media screen and (min-width:1080px){body.project-page .page_container>.nav-lg{grid-column:6;grid-row:1/-1;align-self:start;z-index:10}}@media screen and (min-width:1080px){body.project-page .page_container>main>.project-team-toolbar{grid-column:2/5}}@media screen and (min-width:1080px){body.project-page article,body.project-page article>section{display:grid;grid-template-columns:subgrid;column-gap:var(--grid-gap);row-gap:0;align-items:start}body.project-page :is(article,article>section)>*{grid-column:2/6}body.project-page article>section{grid-column:1/-1}body.project-page :is(article,article>section)>.media-block{grid-column:1/-1}.media-block{display:grid;grid-template-columns:subgrid;grid-auto-flow:dense;align-items:start}.media-block>figure.media-full{grid-column:2/6}.media-block figure{border-radius:var(--radius-lg);overflow:hidden}.media-block--pair>figure.media-full:first-child{grid-column:2/4}.media-block--pair>figure.media-full:nth-child(2){grid-column:4/6}.media-caption{align-self:end;max-width:190px}.media-caption--right{grid-column:6}.media-caption--left{grid-column:1;justify-self:end;text-align:left}.media-caption-group{grid-column:6;align-self:end;display:flex;flex-direction:column;gap:var(--grid-gap);max-width:190px}.media-caption-group .media-caption{align-self:auto;max-width:none}}@media screen and (max-width:1079px){.media-block--pair{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--unit-4);row-gap:var(--unit-4)}.media-block--pair>figure.media-full{margin:0;grid-row:1}.media-block--pair>figure.media-full:first-child{grid-column:1}.media-block--pair>figure.media-full:nth-child(2){grid-column:2}.media-group--stacked .media-block--pair{grid-template-columns:1fr}.media-group--stacked .media-block--pair>figure.media-full:first-child{grid-column:1;grid-row:1}.media-group--stacked .media-block--pair>figure.media-full:nth-child(2){grid-column:1;grid-row:2}.media-block .media-caption,.media-block .media-caption-group,.media-caption__side{display:none}}body.project-page .page_container article section{margin:0}body:not(.project-page) .page_container article section{margin:32px 0}body.project-page .page_container>header{margin-bottom:var(--section-spacing)}@media screen and (max-width:460px){body.project-page .page_container>header{margin-bottom:var(--unit-56)}}body.project-page .page_container>header .profile-info{flex:1 1 auto;min-width:0}body.project-page .page_container>header .profile-info h1{max-width:600px}body.project-page .page_container article :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,figure,section){margin-block:0}:where(:is(body.project-page .page_container article,body.project-page .page_container article section))>*{--flow-space: initial}:is(body.project-page .page_container article,body.project-page .page_container article section)>*+*:not(dialog){margin-top:var(--flow-space, var(--text-spacing-standard))}body.project-page .page_container article section{--flow-space: var(--section-spacing)}body.project-page .page_container article .media-block{--flow-space: var(--block-spacing)}body.project-page .page_container article :is(h1,h2,h3,h4,h5,h6)+*{--flow-space: var(--text-spacing-tight)}body.project-page .page_container article :is(h1,h2,h3,h4,h5,h6)+.media-block{--flow-space: var(--block-spacing)}body.project-page .page_container article .media-block+*{--flow-space: var(--block-spacing)}body.project-page .page_container article .media-block+.media-block{--flow-space: var(--grid-gap)}@media screen and (max-width:460px){body.project-page .page_container article .media-block+.media-block{--flow-space: var(--unit-4)}}body.project-page .page_container article .media-block+section{--flow-space: var(--section-spacing)}body.project-page .page_container article .media-group,body.project-page .page_container article .media-group+*,body.project-page .page_container article .media-block+.media-group{--flow-space: var(--section-spacing)}body.project-page .page_container article .card-group,body.project-page .page_container article .card-group+*,body.project-page .page_container article .card-group+.source-note+*,body.project-page .page_container article .media-block+.card-group{--flow-space: var(--unit-48)}body.project-page .page_container article .kicker+:is(h1,h2,h3,h4,h5,h6){--flow-space: var(--unit-4)}body.project-page .page_container article blockquote+.quote-attr{--flow-space: var(--unit-12)}body.project-page .page_container article :is(.card-group,.media-group,.media-block,figure)+.source-note{--flow-space: var(--source-spacing)}body.project-page .page_container article ul{margin-left:0;margin-right:0}body.project-page .page_container article ul li+li{margin-top:var(--text-spacing-tight)}body:not(.project-page) p~figure{margin-top:60px!important}#page-permalink-footer{width:100%;padding-bottom:var(--page-gutter-y)}#page-permalink-footer .footer-content{padding-top:var(--unit-128)}#page-permalink-footer .next-project{margin:0 0 48px}#page-permalink-footer .next-project .kicker{margin:0 0 var(--text-spacing-tight)}#page-permalink-footer .page-nav-buttons{display:flex;flex-direction:row;justify-content:center;align-items:center;min-height:22px}#page-permalink-footer .page-nav-buttons a{text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}#page-permalink-footer .page-nav-buttons a:active{background-color:var(--secondaryBorderColor);border-radius:2px}#page-permalink-footer .page-nav-buttons a:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){#page-permalink-footer .page-nav-buttons a:hover,[data-zip-on-hover]:hover #page-permalink-footer .page-nav-buttons a{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){#page-permalink-footer .page-nav-buttons a{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}#page-permalink-footer .page-nav-buttons a:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){#page-permalink-footer .page-nav-buttons a:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}#page-permalink-footer .page-nav-buttons>div{margin:0 12px}.nav-lg{display:none}@media screen and (min-width:1080px){.nav-lg{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;row-gap:var(--unit-32);pointer-events:auto;position:sticky;top:var(--page-gutter-y);padding-left:var(--unit-16)}}.nav-lg__group{display:flex;flex-direction:column;align-items:flex-start;row-gap:var(--unit-4)}.nav-lg__group:first-child{row-gap:0}.nav-lg__group:nth-child(2){position:relative}.nav-lg__group:nth-child(2):before{content:"";position:absolute;top:0;bottom:0;left:calc(-1 * var(--unit-16));width:2px;background-color:#eaeaea}.nav-lg__group:nth-child(2):after{content:"";position:absolute;left:calc(-1 * var(--unit-16));top:var(--active-top, 0);height:var(--active-height, 0);width:2px;background-color:var(--text-primary);opacity:0;transition:top .28s cubic-bezier(.4,0,.2,1),height .28s cubic-bezier(.4,0,.2,1),opacity .2s ease}.nav-lg__group:nth-child(2)[data-has-active]:after{opacity:1}.nav-lg__group:nth-child(2)[data-init]:after{transition:opacity .2s ease}.nav-lg__permalink{display:block;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-primary)}.nav-lg__site-section{display:block;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height);color:var(--text-secondary)}.nav-lg__link{display:inline-flex;flex-direction:column;padding:var(--unit-4) 0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-tertiary);text-decoration:none;transition:color .2s ease}.nav-lg__link[data-depth="1"]{padding-left:var(--unit-12)}.nav-lg__link[data-depth="2"]{padding-left:calc(var(--unit-12) * 2)}.nav-lg__link:hover,.nav-lg__link[data-active]{color:var(--text-primary)}.nav-lg__contact-link{text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}.nav-lg__contact-link:active{background-color:var(--secondaryBorderColor);border-radius:2px}.nav-lg__contact-link:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){.nav-lg__contact-link:hover,[data-zip-on-hover]:hover .nav-lg__contact-link{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){.nav-lg__contact-link{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}.nav-lg__contact-link:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){.nav-lg__contact-link:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}.nav-lg__contact-link{padding:var(--unit-4) 0;line-height:1;background-origin:content-box;background-position:0 calc(100% + .12em)}@media(hover:hover)and (pointer:fine){.nav-lg__contact-link:hover{background-position:100% calc(100% + .12em)}}.nav-lg__contact-link:focus-visible{background-position:100% calc(100% + .12em)}body.project-page main section[id]{scroll-margin-top:var(--page-gutter-y)}@media screen and (max-width:1079px){body.project-page main section[id]{scroll-margin-top:calc(var(--page-gutter-y) + var(--nav-sd-clearance))}}.nav-sd{position:fixed;top:var(--nav-sd-top-offset);left:var(--page-gutter-x);right:var(--page-gutter-x);z-index:265;pointer-events:none}@media screen and (min-width:1080px){.nav-sd{left:calc(var(--page-gutter-x) + (100vw - 2 * var(--page-gutter-x) - 5 * var(--grid-gap)) / 6 + var(--grid-gap))}.nav-sd .nav-sd__back--static,.nav-sd .nav-sd__project,.nav-sd .nav-sd__toggle,.nav-sd .nav-sd__menu{display:none}}.nav-sd__bar{pointer-events:auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--unit-16);padding:0;color:var(--text-primary);font-size:var(--type-size);line-height:var(--line-height-tight)}.nav-sd__back{justify-self:start;min-width:0;white-space:nowrap;margin-left:calc(var(--unit-20) * -1)}.nav-sd__back--static{display:inline-flex;align-items:center;gap:var(--unit-8);margin-left:0;color:var(--text-primary)}.nav-sd__back-arrow{display:block;flex:0 0 14px}.nav-sd__back-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-sd__project{justify-self:center;max-width:100%;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:1;transition:opacity var(--fade-duration) var(--fade-easing)}.nav-sd__project[data-hidden]{opacity:0}.nav-sd__project-full{display:inline}.nav-sd__project-short{display:none}@media screen and (max-width:460px){.nav-sd__project-full{display:none}.nav-sd__project-short{display:inline}}.nav-sd__toggle{justify-self:end;min-width:0;max-width:100%;margin-right:calc(var(--unit-20) * -1)}.nav-sd__section-label{flex:0 1 auto;min-width:0;overflow:hidden;height:calc(var(--type-size) * var(--line-height-tight));text-align:right}.nav-sd__section-label-track{display:block;transition:transform .18s cubic-bezier(.32,.72,0,1)}.nav-sd__section-label-item{display:block;height:calc(var(--type-size) * var(--line-height-tight));line-height:var(--line-height-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.nav-sd__section-label-track{transition:none}}.nav-sd__chevron{display:block;flex:0 0 14px;transition:transform var(--dur-fast) var(--ease-out)}.nav-sd__toggle[aria-expanded=true] .nav-sd__chevron{transform:rotate(180deg)}.nav-sd__menu{pointer-events:auto;margin-top:var(--unit-4);margin-left:auto;margin-right:calc(var(--unit-20) * -1);width:max-content;max-width:100%;padding:var(--unit-16) var(--unit-20) var(--unit-16) var(--unit-16);background:var(--bg-panel);border:1px solid var(--border-panel-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);color:var(--text-primary);opacity:1;transform:translateY(0);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),display var(--dur-fast) allow-discrete}.nav-sd__menu[hidden]{display:none;opacity:0;transform:translateY(calc(var(--unit-4) * -1))}@starting-style{.nav-sd__menu:not([hidden]){opacity:0;transform:translateY(calc(var(--unit-4) * -1))}}@media screen and (max-width:460px){.nav-sd__menu{width:100%;margin-left:0}}.nav-sd__menu-group{display:flex;flex-direction:column}.nav-sd__link{position:relative;isolation:isolate}.nav-sd__link:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--bg-hover);opacity:0;transition:opacity .15s ease;pointer-events:none}@media(hover:hover)and (pointer:fine){.nav-sd__link:hover:after{opacity:1}}.nav-sd__link{--row-indent: var(--unit-12);position:relative;display:flex;align-items:center;padding:var(--unit-8) var(--unit-12) var(--unit-8) calc(var(--row-indent) + var(--unit-4) + var(--unit-8));border-radius:var(--radius-sm);font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-secondary);text-decoration:none;transition:color var(--dur-fast) var(--ease-out);white-space:nowrap}.nav-sd__link:before{content:"";position:absolute;left:var(--row-indent);top:50%;transform:translateY(-50%);width:var(--unit-4);height:var(--unit-4);border-radius:var(--radius-avatar);background:var(--text-accent);opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}.nav-sd__link[data-depth="1"]{--row-indent: var(--unit-24)}.nav-sd__link[data-depth="2"]{--row-indent: var(--unit-36)}@media(hover:hover)and (pointer:fine){.nav-sd__link:hover{color:var(--text-primary)}}.nav-sd__link[data-active]{color:var(--text-accent)}.nav-sd__link[data-active]:before{opacity:1}.nav-sd__link:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.progressive-blur{pointer-events:none;contain:layout paint}.progressive-blur:after{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;background:linear-gradient(var(--pb-grad-dir),rgb(from var(--pb-tint) r g b/0) 0%,rgb(from var(--pb-tint) r g b/0) 5%,rgb(from var(--pb-tint) r g b/.0027700831) 10%,rgb(from var(--pb-tint) r g b/.0110803324) 15%,rgb(from var(--pb-tint) r g b/.0249307479) 20%,rgb(from var(--pb-tint) r g b/.0443213296) 25%,rgb(from var(--pb-tint) r g b/.0692520776) 30%,rgb(from var(--pb-tint) r g b/.0997229917) 35%,rgb(from var(--pb-tint) r g b/.135734072) 40%,rgb(from var(--pb-tint) r g b/.1772853186) 45%,rgb(from var(--pb-tint) r g b/.2243767313) 50%,rgb(from var(--pb-tint) r g b/.2770083102) 55%,rgb(from var(--pb-tint) r g b/.3351800554) 60%,rgb(from var(--pb-tint) r g b/.3988919668) 65%,rgb(from var(--pb-tint) r g b/.4681440443) 70%,rgb(from var(--pb-tint) r g b/.5429362881) 75%,rgb(from var(--pb-tint) r g b/.6232686981) 80%,rgb(from var(--pb-tint) r g b/.7091412742) 85%,rgb(from var(--pb-tint) r g b/.8005540166) 90%,rgb(from var(--pb-tint) r g b/.8975069252) 95%,rgb(from var(--pb-tint) r g b/1) 100%)}.progressive-blur__layer{position:absolute;pointer-events:none}.progressive-blur--top{position:fixed;top:0;left:0;right:0;height:var(--pb-extent);z-index:260}.progressive-blur--bottom{position:absolute;bottom:0;left:0;right:0;height:var(--pb-extent)}.progressive-blur--left{position:absolute;top:0;bottom:0;left:0;width:var(--pb-extent)}.progressive-blur--right{position:absolute;top:0;bottom:0;right:0;width:var(--pb-extent)}@media(prefers-reduced-transparency:reduce){.progressive-blur__layer,.progressive-blur:after{display:none}.progressive-blur{background:linear-gradient(var(--pb-grad-dir),rgb(from var(--pb-tint) r g b/0) 0%,rgb(from var(--pb-tint) r g b/1) 100%)}}.logo-carousel-banner{display:flex;flex-direction:column}.logo-carousel__heading{margin:0 0 var(--unit-16) 0;font-size:var(--type-size);font-weight:var(--weight-regular);color:var(--text-primary)}.logo-carousel{--logo-carousel-height: 88px;--logo-carousel-padding: 20px;--logo-carousel-gap: var(--unit-48);--logo-carousel-pps: 25;--logo-carousel-edge-fade: 80px;position:relative;overflow:hidden;width:100%;height:var(--logo-carousel-height);padding-block:var(--logo-carousel-padding);background:var(--bg-card);border-radius:var(--radius-lg);contain:layout paint}.logo-carousel__edge{z-index:2}.logo-carousel__track{display:flex;align-items:center;height:100%;gap:var(--logo-carousel-gap);margin:0;padding:0;list-style:none;width:max-content;animation:logo-carousel-scroll var(--animation-duration, 60s) linear infinite;animation-play-state:paused}.logo-carousel[data-ready] .logo-carousel__track{animation-play-state:running}.logo-carousel[data-offscreen] .logo-carousel__track,.logo-carousel[data-hidden-tab] .logo-carousel__track{animation-play-state:paused}.logo-carousel__item{flex:0 0 auto;height:100%;display:flex;align-items:center}.logo-carousel__item img{display:block;height:100%;width:auto;pointer-events:none;-webkit-user-drag:none;user-drag:none}@keyframes logo-carousel-scroll{0%{transform:translate(0)}to{transform:translate(calc(var(--set-width, 0px) * -1))}}@media(prefers-reduced-motion:reduce){.logo-carousel__track{animation:none}}.item{position:relative;display:block;width:100%;padding:0;overflow:hidden;border-radius:var(--radius-lg);text-decoration:none}.thumbnail{background-color:var(--white1);width:100%;aspect-ratio:16/9;position:relative;overflow:hidden}.thumbnail img{position:absolute;top:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1);transition:opacity .4s ease,transform .6s cubic-bezier(.22,1,.36,1)}.thumbnail img.is-loaded{opacity:1}.thumbnail-video{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1);transition:opacity .4s ease,transform .6s cubic-bezier(.22,1,.36,1)}.thumbnail-video.is-loaded{opacity:1}@media(hover:hover)and (pointer:fine){.item:hover .thumbnail img,.item:hover .thumbnail-video{transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.thumbnail img,.thumbnail-video{transition:opacity .4s ease}}.thumbnail:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,#0000008c,#0000 60%);transition:background .3s ease}.item:focus-visible .thumbnail:after{background:linear-gradient(to bottom,#000000d9,#00000040)}@media(hover:hover)and (pointer:fine){.item:hover .thumbnail:after{background:linear-gradient(to bottom,#000000d9,#00000040)}}.thumbnail-caption{position:absolute;top:0;left:0;z-index:2;max-width:75%;padding:var(--unit-24);text-align:left;pointer-events:none;display:flex;flex-direction:column}.thumbnail-title{margin:0;width:fit-content;max-width:100%;border-bottom:none;font-size:var(--type-size-lg);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-inverse)}.thumbnail-client{margin:0;width:fit-content;max-width:100%;font-size:var(--type-size-lg);font-weight:var(--weight-regular);line-height:var(--line-height-tight);color:var(--text-inverse-muted)}.item-meta{margin:var(--text-spacing-tight) 0 0;max-width:min(100%,360px);font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height);color:var(--text-inverse);text-wrap:pretty;opacity:0;will-change:opacity;transition:opacity .2s ease}.item-cta{display:inline-block;align-self:flex-start;margin-top:var(--unit-12);color:var(--text-inverse);opacity:0;will-change:opacity;text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}.item-cta:active{background-color:var(--secondaryBorderColor);border-radius:2px}.item-cta:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){.item-cta:hover,[data-zip-on-hover]:hover .item-cta{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){.item-cta{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}.item-cta:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){.item-cta:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}.item-cta{transition:opacity .2s ease,background-color .12s ease,outline-offset .12s ease,background-position .55s cubic-bezier(.22,1,.36,1)}.item:focus-visible .item-meta,.item:focus-visible .item-cta{opacity:1}@media(hover:hover)and (pointer:fine){.item:hover .item-meta,.item:hover .item-cta{opacity:1}}@media(prefers-reduced-motion:reduce){.item-meta,.item-cta,.thumbnail:after{transition:none}}@media screen and (max-width:460px){.thumbnail-caption{max-width:100%}.item-meta,.item-cta{display:none}}.project-showcase{margin-bottom:var(--section-spacing)}.project-showcase__link{display:block;color:inherit;text-decoration:none;cursor:pointer}.project-showcase__card--feature,.project-showcase__card--media{aspect-ratio:16/9}.project-showcase .card-group>*{position:relative;isolation:isolate}.project-showcase .card-group>*:after{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle farthest-corner at 50% 0%,#f5f5f5 0% 25%,#f5f5f580),linear-gradient(to bottom,#f5f5f5 0% 25%,#f5f5f580),linear-gradient(in oklch to right,var(--brand-primary) 0%,var(--brand-secondary) 100%);background-repeat:no-repeat;background-size:var(--gradient-size-x, 100%) var(--gradient-size-y, 100%);background-position:var(--gradient-pos-x, 0%) var(--gradient-pos-y, 0%);border-radius:inherit;opacity:0;transition:opacity .3s ease;pointer-events:none}@media(hover:hover)and (pointer:fine){.project-showcase__link:hover .card-group>*:after{opacity:1}}.project-showcase .card-group{aspect-ratio:16/9;grid-template-rows:2fr 1fr 1fr}.project-showcase .metric-card{aspect-ratio:auto;min-height:0;overflow:hidden}.project-showcase .metric-card--hide-description .metric-card__description{display:none}.project-showcase .card-group>.project-showcase__card--media{padding:0;overflow:hidden}.project-showcase__media{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.project-showcase__card--feature{display:flex;flex-direction:column;align-items:flex-start;gap:var(--unit-32)}.project-showcase__copy{display:flex;flex-direction:column;gap:var(--unit-16)}.project-showcase__heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--unit-16);margin-bottom:var(--unit-16)}.project-showcase__client,.project-showcase__type{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular)}.project-showcase__client{color:var(--text-primary)}.project-showcase__type{color:var(--text-secondary)}.project-showcase .project-showcase__title{margin:0;font-size:var(--type-size-lg);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.project-showcase__kickers{margin:0;display:flex;flex-wrap:wrap;gap:var(--unit-16);font-size:var(--type-size);font-weight:var(--weight-regular);color:var(--text-secondary)}.project-showcase--compact .card-group{grid-auto-flow:row;grid-auto-rows:auto;aspect-ratio:auto}.project-showcase--compact .project-showcase__card--mobile-hidden{display:none}.project-showcase--compact .metric-card{aspect-ratio:auto;min-height:0;overflow:hidden}.project-showcase--compact .card-group{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto auto}.project-showcase--compact .card-group>.project-showcase__card--feature{grid-column:1/span 2;grid-row:1/span 2}.project-showcase--compact .card-group>.metric-card:nth-child(1 of.metric-card){grid-column:3;grid-row:1/span 2}.project-showcase--compact .card-group>.metric-card:nth-child(2 of.metric-card){grid-column:4;grid-row:1}.project-showcase--compact .card-group>.metric-card:nth-child(3 of.metric-card){grid-column:4;grid-row:2}.project-showcase--compact .card-group>.project-showcase__card--media:not(.project-showcase__card--mobile-hidden){grid-column:1/-1;grid-row:3}.project-showcase--compact .card-group>.metric-card:nth-child(1 of.metric-card):nth-last-child(odd of.metric-card){grid-column:3;grid-row:1/span 2}.project-showcase--compact .card-group>.metric-card:nth-child(2 of.metric-card),.project-showcase--compact .card-group>.metric-card:nth-child(3 of.metric-card){aspect-ratio:4/3}.project-showcase--ultra-narrow .card-group{grid-auto-flow:row;grid-auto-rows:auto;aspect-ratio:auto}.project-showcase--ultra-narrow .project-showcase__card--mobile-hidden{display:none}.project-showcase--ultra-narrow .metric-card{aspect-ratio:auto;min-height:0;overflow:hidden}.project-showcase--ultra-narrow .card-group{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto auto}.project-showcase--ultra-narrow .metric-card{aspect-ratio:auto}.project-showcase--ultra-narrow .card-group>.project-showcase__card--feature{grid-column:1/-1;grid-row:1}.project-showcase--ultra-narrow .card-group>.metric-card:nth-child(1 of.metric-card){grid-column:1;grid-row:2/span 2}.project-showcase--ultra-narrow .card-group>.metric-card:nth-child(2 of.metric-card){grid-column:2;grid-row:2}.project-showcase--ultra-narrow .card-group>.metric-card:nth-child(3 of.metric-card){grid-column:2;grid-row:3}.project-showcase--ultra-narrow .card-group>.project-showcase__card--media:not(.project-showcase__card--mobile-hidden){grid-column:1/-1;grid-row:4}.project-showcase--ultra-narrow .card-group>.metric-card:nth-child(1 of.metric-card):nth-last-child(odd of.metric-card){grid-column:1;grid-row:2/span 2}.project-team-toolbar{margin-bottom:var(--section-spacing)}@media screen and (max-width:460px){.project-team-toolbar{margin-bottom:var(--unit-40)}}.project-team-toolbar .kicker{margin-bottom:var(--unit-16)}.my-role-card{position:relative;isolation:isolate}.my-role-card:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-image:radial-gradient(circle farthest-corner at 50% 0%,#f5f5f5 0% 25%,#f5f5f580),linear-gradient(to bottom,#f5f5f5 0% 25%,#f5f5f580),linear-gradient(in oklch to right,var(--brand-primary) 0%,var(--brand-secondary) 100%);opacity:0;transition:opacity .3s ease;pointer-events:none}@media(hover:hover)and (pointer:fine){.my-role-card:hover:after{opacity:1}}.my-role-card{display:block;width:100%;padding:32px;border:none;border-radius:var(--radius-lg);background-color:var(--bg-card);color:var(--text-primary);text-align:left;cursor:pointer}.my-role-card__row{display:flex;flex-direction:row;align-items:center;gap:12px}.my-role-card__avatar{flex-shrink:0;width:52px;height:52px;overflow:hidden;border-radius:var(--radius-avatar);background:#eaeaea}.my-role-card__avatar img{display:block;width:100%;height:100%;object-fit:cover}@media screen and (max-width:460px){.my-role-card__avatar{display:none}}.my-role-card__meta{flex:1 1 auto;min-width:0}.my-role-card__name{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.my-role-card__role{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height);color:var(--text-secondary)}.my-role-card__bio{margin:14px 0 0 64px;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height);color:var(--text-secondary);white-space:pre-wrap}@media screen and (max-width:460px){.my-role-card__bio{margin-left:0}}.my-role-card__footer{display:flex;align-items:center;gap:var(--unit-12);margin-top:var(--unit-32);margin-left:64px}@media screen and (max-width:460px){.my-role-card__footer{margin-left:0}}.my-role-card__avatar-stack{display:flex;align-items:center;gap:var(--unit-4)}.my-role-card__avatar-stack-more,.my-role-card__avatar-stack-item{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-avatar);overflow:hidden}.my-role-card__avatar-stack-item{background:#eaeaea}.my-role-card__avatar-stack-item img{display:block;width:100%;height:100%;object-fit:cover}.my-role-card__avatar-stack-more{background:#eaeaea;font-size:11px;font-weight:var(--weight-regular);line-height:1;color:var(--text-secondary)}.my-role-card__link{text-decoration:underline;text-decoration-thickness:var(--text-underline-width);text-decoration-color:currentColor;text-underline-offset:.12em;display:inline;max-width:100%;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(transparent,transparent);background-position:0 100%;background-size:100% var(--text-underline-width);background-repeat:no-repeat;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease,background-image .2s ease,background-position .55s cubic-bezier(.22,1,.36,1)}.my-role-card__link:active{background-color:var(--secondaryBorderColor);border-radius:2px}.my-role-card__link:focus-visible{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%;outline:2px solid currentColor;outline-offset:3px;border-radius:2px;background-color:var(--secondaryBorderColor)}@media(hover:hover)and (pointer:fine){.my-role-card__link:hover,[data-zip-on-hover]:hover .my-role-card__link{text-decoration-color:transparent;background-image:var(--zip-hover-gradient);background-size:200% var(--text-underline-width);background-position:100% 100%}}@media(prefers-reduced-motion:reduce){.my-role-card__link{background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%;transition:text-decoration-color .12s ease,background-color .12s ease,outline-offset .12s ease}.my-role-card__link:focus-visible{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){.my-role-card__link:hover{text-decoration-color:currentColor;background-image:linear-gradient(transparent,transparent);background-size:100% var(--text-underline-width);background-position:0 100%}}.my-role-card__link{font-size:var(--type-size);font-weight:400}.project-team-card-group{display:flex;flex-direction:column;gap:var(--unit-4);border-radius:var(--radius-lg);overflow:hidden}.project-team-card-group>.my-role-card{border-radius:var(--radius-sm)}.project-team-card-group__orgs{display:flex;flex-direction:row;gap:var(--unit-4)}.project-team-card-group__orgs>.org-card{flex:1 1 0;min-width:0}.project-team-card-group__orgs>.org-card[data-overflow-hidden]{display:none}html.project-team-panel-open{overflow:hidden}.project-team-panel{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:calc(var(--nav-sd-clearance) + var(--unit-16)) 40px;background:linear-gradient(to bottom,#ffffff8c,#ffffff40);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);opacity:0;transition:opacity .22s ease;pointer-events:none}.project-team-panel[hidden]{display:none}.project-team-panel.is-visible{opacity:1;pointer-events:auto}@media screen and (max-width:600px){.project-team-panel{padding:0;align-items:flex-end}}.project-team-panel__card{position:relative;width:100%;max-width:560px;max-height:100%;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-panel-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);overflow:hidden;transform:translateY(0);transition:transform .32s cubic-bezier(.32,.72,0,1)}@media screen and (max-width:600px){.project-team-panel__card{max-width:100%;max-height:88svh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}@media screen and (max-width:600px){.project-team-panel:not(.is-visible) .project-team-panel__card{transform:translateY(100%)}}.project-team-panel__chrome{position:absolute;top:0;left:var(--unit-20);right:var(--unit-20);height:var(--unit-80);z-index:1;pointer-events:none}.progressive-blur.project-team-panel__chrome-blur{position:absolute;inset:0;z-index:0}.project-team-panel__chrome-bar{position:relative;z-index:1;pointer-events:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--unit-12);padding:var(--unit-12)}h2.project-team-panel__title{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.project-team-panel__close{flex-shrink:0;margin-right:calc(var(--unit-20) * -1)}.project-team-panel__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--unit-80) 20px 20px;-webkit-overflow-scrolling:touch}.project-team-group{margin-bottom:var(--unit-48)}.project-team-group:last-child{margin-bottom:0}.project-team-group__heading{margin:0;font-weight:var(--weight-regular)}.project-team-group__heading .attribution__avatar{border-radius:0}.project-team-group__heading-link{display:block;padding:14px 12px;border-radius:var(--radius-sm);color:inherit;text-decoration:none;transition:background-color .15s ease}.project-team-group__heading-link--bare{font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}@media(hover:hover)and (pointer:fine){a.project-team-group__heading-link:hover{background-color:var(--bg-hover)}}.project-team-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.project-team-list__link{display:flex;flex-direction:column;gap:0;padding:14px 12px;border-radius:var(--radius-sm);color:inherit;text-decoration:none;cursor:pointer;transition:background-color .15s ease}@media(hover:hover)and (pointer:fine){.project-team-list__link:hover{background-color:var(--bg-hover)}}.project-team-list__item:not(:has(.project-team-list__link)){display:flex;flex-direction:column;gap:0;padding:14px 12px}.project-team-li-icon{flex-shrink:0;color:var(--text-secondary);opacity:.5;transition:color .15s ease,opacity .15s ease}@media(hover:hover)and (pointer:fine){.project-team-list__link:hover .project-team-li-icon{color:var(--brand-linkedin);opacity:1}}.project-team-list__bio{margin:8px 0 0 70px;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:1.55;color:var(--text-secondary);white-space:pre-wrap}.card-group{display:grid;grid-template-columns:repeat(var(--card-group-columns, 3),minmax(0,1fr));grid-template-rows:repeat(var(--card-group-rows, 1),1fr);grid-auto-rows:1fr;gap:4px;align-items:stretch;justify-items:stretch;border-radius:var(--radius-lg);overflow:hidden}.card-group>*{background:var(--bg-card);border-radius:4px;padding:var(--unit-20);grid-column:span var(--card-span, 1);grid-row:span var(--card-row-span, 1)}.card-group--vertical-flow{grid-auto-flow:column}.card-group>.testimonial-card{grid-column:1/-1}.card-group:has(>.testimonial-card){grid-template-rows:1fr auto}@media screen and (max-width:958px){.card-group:has(.metric-card__description):not(.card-group--showcase){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.card-group:has(.metric-card__description):not(.card-group--showcase):has(>.testimonial-card){grid-template-rows:repeat(var(--card-group-rows, 1),1fr) auto}.card-group:has(.metric-card__description):not(.card-group--showcase)>.metric-card:nth-child(1 of.metric-card):nth-last-child(odd of.metric-card){grid-column:1/-1;aspect-ratio:auto}}@media screen and (max-width:664px){.card-group:not(.card-group--showcase) .metric-card__description{display:none}}@media screen and (max-width:628px){.card-group:not(.card-group--showcase){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.card-group:not(.card-group--showcase):has(>.testimonial-card){grid-template-rows:repeat(var(--card-group-rows, 1),1fr) auto}.card-group:not(.card-group--showcase)>.metric-card:nth-child(1 of.metric-card):nth-last-child(odd of.metric-card){grid-column:1/-1;aspect-ratio:auto}}.media-group{border-radius:var(--radius-lg);overflow:hidden}@media screen and (min-width:1080px){body.project-page :is(article,article>section)>.media-group{grid-column:2/span var(--page-span, 5);display:grid;grid-template-columns:subgrid;column-gap:var(--grid-gap);row-gap:var(--unit-4);border-radius:0;overflow:visible}body.project-page article .media-group>.media-block{grid-column:1/-1}.media-group .media-block>figure.media-full{grid-column:1/-2}.media-group .media-block figure{border-radius:4px}body.project-page article .media-group>.media-block--pair{display:flex;gap:var(--unit-4);grid-column:1/-2}.media-group .media-block--pair>figure.media-full{grid-column:auto;flex:1;min-width:0}.media-group .media-block--pair :is(.media-caption,.media-caption-group){display:none}body.project-page article .media-group--stacked>.media-block--pair{flex-direction:column}.media-group--stacked .media-block--pair>figure.media-full{flex:none;align-self:stretch}}@media screen and (max-width:1079px){.media-group{display:flex;flex-direction:column;gap:var(--unit-4)}.media-group .media-block figure{border-radius:4px}.media-group :is(.media-caption,.media-caption-group){display:none}}@media screen and (min-width:1080px){body.project-page :is(article,article>section)>.card-group{grid-column:2/span var(--page-span, 3)}}.metric-card{margin:0;display:flex;flex-direction:column;aspect-ratio:16/9;padding:var(--unit-20) var(--unit-24)}.metric-card__value{order:1;margin:0;font-size:var(--type-size-lg);font-weight:var(--weight-regular);color:var(--text-primary);line-height:var(--line-height-tight)}.metric-card__label{order:2;margin:var(--unit-4) 0 0}.metric-card__description{order:3;margin:auto 0 0}.metric-card__label,.metric-card__description{font-size:var(--type-size);color:var(--text-secondary);line-height:var(--line-height)}.testimonial-card{display:flex;flex-direction:column;justify-content:space-between;gap:var(--unit-48);padding:var(--unit-24)}.testimonial-card__quote{margin:0;padding:0;border:none;font-size:var(--type-size-lg);line-height:var(--line-height);color:var(--text-primary)}.testimonial-card__quote>p{margin:0;color:var(--text-primary);hanging-punctuation:first allow-end last}.testimonial-card__quote>p:before{content:open-quote;margin-left:-.4em}.testimonial-card__quote>p:after{content:close-quote}.attribution{display:flex;align-items:center;gap:14px}.attribution__avatar{flex:0 0 auto;width:56px;height:56px;border-radius:var(--radius-avatar);overflow:hidden;background:#eaeaea}.attribution__avatar img{display:block;width:100%;height:100%;object-fit:cover}.attribution__cite{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.attribution__name-row{display:flex;align-items:center;gap:5px}.attribution__name{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.attribution__role{margin:0;font-size:var(--type-size);font-weight:var(--weight-regular);line-height:1.4;color:var(--text-secondary)}.org-card{position:relative;isolation:isolate}.org-card:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--bg-hover);opacity:0;transition:opacity .15s ease;pointer-events:none}@media(hover:hover)and (pointer:fine){.org-card:hover:after{opacity:1}}.org-card{display:block;background:var(--bg-card);border-radius:var(--radius-sm);padding:var(--unit-12) var(--unit-16);color:inherit;text-decoration:none}.org-card .attribution__avatar{border-radius:0}.media-full :is(img,video){cursor:zoom-in}.media-lightbox{padding:var(--unit-16);border:0;background:transparent;inset:0;margin:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;overflow:hidden;cursor:zoom-out;color:var(--text-inverse)}.media-lightbox::backdrop{background:var(--bg-dark);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);transition:opacity var(--dur-fast) var(--ease-out)}@starting-style{.media-lightbox[open]::backdrop{opacity:0}}.media-lightbox.is-closing::backdrop{opacity:0}.media-lightbox:not([open]){display:none}dialog.media-lightbox[open]{display:flex;position:fixed}.media-lightbox__close{position:absolute;top:var(--unit-16);right:var(--unit-16);z-index:1;color:var(--text-inverse-muted);opacity:1;transition:color .15s ease,opacity var(--dur-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.media-lightbox__close:hover{color:var(--text-inverse)}}.media-lightbox__close:focus-visible{color:var(--text-inverse);outline-color:var(--text-inverse)}@media(hover:hover)and (pointer:fine){.media-lightbox__close.btn-secondary:hover{background-color:#ffffff0a}}.media-lightbox__close.btn-secondary:active{background-color:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff26}.media-lightbox__content{margin:0;width:100%;height:100%;display:flex;justify-content:center;gap:var(--unit-16);min-width:0;min-height:0;opacity:1;transition:opacity var(--dur-fast) var(--ease-out)}@starting-style{.media-lightbox[open] .media-lightbox__content{opacity:0}}.media-lightbox.is-closing .media-lightbox__content{opacity:0}@starting-style{.media-lightbox[open] .media-lightbox__close{opacity:0}}.media-lightbox.is-closing .media-lightbox__close{opacity:0}.media-lightbox[data-caption-position=above] .media-lightbox__content{flex-direction:column-reverse;justify-content:flex-start}.media-lightbox[data-caption-position=right] .media-lightbox__content{flex-direction:row}.media-lightbox__media{flex:0 0 auto;display:block;min-width:0;min-height:0}.media-lightbox__media>:is(img,video){display:block;width:100%;height:100%;object-fit:contain;object-position:left bottom;cursor:default}.media-lightbox__caption{margin:0;color:var(--text-inverse);font-size:var(--type-size);font-weight:var(--weight-regular);line-height:var(--line-height);text-align:left}.media-lightbox__caption:empty{display:none}.media-lightbox[data-caption-position=above] .media-lightbox__caption{flex:0 0 auto;max-width:none;border-bottom:var(--border-inverse);padding-bottom:var(--unit-16)}.media-lightbox[data-caption-position=right] .media-lightbox__caption{flex:0 1 auto;max-width:280px;align-self:stretch;border-left:var(--border-inverse);padding-left:var(--unit-16);display:flex;flex-direction:column;justify-content:flex-end}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
