:root{--color-text: #5c636a;--color-heading: #000;--color-accent: #25b7b8;--color-accent-deep: #21a1a2;--color-hero-wash: rgba(14, 78, 78, .5);--color-shadow: color-mix(in oklab, rgb(15 23 42) 88%, var(--color-accent-deep));--color-pill: #ffdd00;--color-muted: #595959;--color-caption: #6a6a6a;--color-border: #f4f4f4;--color-button-ghost: #f5f5f5;--color-icon: #ccc;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--container: 1140px;--container-pad: 50px;--gutter: 15px;--header-pad: 35px;--hero-min: 700px;--focus: 2px solid var(--color-accent);--focus-offset: 3px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;font-size:16px;line-height:1.8;color:var(--color-text);font-family:var(--font);background:#fff}img{max-width:100%;height:auto;display:block}figure{margin:0}h1,h2,h3,h4,h5{color:var(--color-heading)}h1{font-weight:500}a{color:inherit;transition:color .3s ease,background .3s ease,box-shadow .3s ease,outline-offset .15s ease}a:hover{text-decoration:none}:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}::selection{background:orange}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:1rem;top:-100%;z-index:100000;background:#000;color:#fff;padding:.6rem 1rem;text-decoration:none;border-radius:2px}.skip-link:focus{top:1rem}.container{width:100%;padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}@media(min-width:576px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:720px}}@media(min-width:992px){.container{max-width:960px}}@media(min-width:1200px){.container{max-width:var(--container)}}.container-fluid{width:100%;padding-left:var(--container-pad);padding-right:var(--container-pad);max-width:1600px;margin-left:auto;margin-right:auto}@media(max-width:767.98px){.container-fluid{padding-left:15px;padding-right:15px}}.row{display:flex;flex-wrap:wrap;margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1)}.row.align-items-center{align-items:center}.row.justify-content-center{justify-content:center}[class*=col-]{position:relative;width:100%;padding-left:var(--gutter);padding-right:var(--gutter)}.col-3{flex:0 0 25%;max-width:25%}.col-9{flex:0 0 75%;max-width:75%}.col-12{flex:0 0 100%;max-width:100%}@media(min-width:768px){.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-12{flex:0 0 100%;max-width:100%}}@media(min-width:992px){.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-6{flex:0 0 50%;max-width:50%}}.text-center{text-align:center}.text-right{text-align:right}.list-unstyled{padding-left:0;list-style:none;margin:0}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.mt-3{margin-top:1rem}.py-5{padding-top:3rem;padding-bottom:3rem}@media(min-width:768px){.text-md-left{text-align:left}.pt-md-5{padding-top:3rem}}.img-fluid{max-width:100%;height:auto}.site-header{--header-progress: 0;position:fixed;top:0;left:0;width:100%;padding:calc(var(--header-pad) - 23px * var(--header-progress)) 0;z-index:99999;background:rgb(255 255 255 / var(--header-progress));border-bottom:1px solid rgb(244 244 244 / var(--header-progress))}.site-header.is-light.is-stuck .site-logo a,.site-header.is-light.is-stuck .site-nav a,.site-header.is-light.is-stuck .site-header-page-title{color:#000}.site-header.is-light.is-stuck .hamburger-inner,.site-header.is-light.is-stuck .hamburger-inner:before,.site-header.is-light.is-stuck .hamburger-inner:after{background-color:#000}.site-header .container-fluid{max-width:100%}.site-header-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}.site-header-end{display:flex;align-items:flex-start;justify-content:flex-end;flex:0 0 auto;margin-left:auto}.site-header-page-title{flex:1 1 auto;min-width:0;align-self:center;margin:0;font-size:18px;font-weight:500;line-height:1.15;color:#000;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;visibility:hidden;transform:translateY(6px);pointer-events:none}.site-header-page-title.is-visible{opacity:1;visibility:visible;transform:none}@media(min-width:768px){.site-header-page-title{position:absolute;top:50%;left:var(--page-title-left, 0);max-width:var(--page-title-max, 24rem);flex:0 0 auto;width:auto;text-align:left;transform:translateY(calc(-50% + 6px))}.site-header-page-title.is-visible{transform:translateY(-50%)}}.menu-open .site-header-page-title{opacity:0;visibility:hidden}@media(prefers-reduced-motion:no-preference){.site-header-page-title{transition:opacity .25s ease,transform .25s ease,visibility .25s ease,color .3s ease}}.scroll-progress{position:absolute;left:0;right:0;top:100%;height:2px;pointer-events:none;overflow:hidden}.scroll-progress-bar{display:block;height:100%;width:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:left center;will-change:transform}@media(prefers-reduced-motion:no-preference){.scroll-progress-bar{transition:transform 80ms linear}}.site-logo{position:relative;top:calc(-10px * (1 - var(--header-progress)));z-index:9999;flex:0 0 auto}.site-logo a{font-size:calc(30px - 12px * var(--header-progress));line-height:1.15;color:#000;text-decoration:none;font-weight:400;position:relative;display:inline-block;padding-bottom:5px;transition:font-weight .15s ease,color .3s ease,background .3s ease,box-shadow .3s ease,outline-offset .15s ease}.site-logo a:hover,.site-logo a:focus-visible{font-weight:700}.site-header.is-light .site-logo a{color:#fff}.site-header.is-light .hamburger-inner,.site-header.is-light .hamburger-inner:before,.site-header.is-light .hamburger-inner:after{background-color:#fff}.site-header.is-light .site-nav a,.site-header.is-light .site-header-page-title{color:#fff}.menu-open .site-header{position:fixed;left:0;top:0}@media(max-width:767.98px){.menu-open .site-logo a{color:#000!important}.menu-open .hamburger-inner,.menu-open .hamburger-inner:before,.menu-open .hamburger-inner:after{background-color:#000}.menu-open .site-nav a{color:#000!important}}.site-nav{position:relative;top:calc(6px * var(--header-progress))}.site-nav ul{margin:0;display:flex;justify-content:flex-end;gap:0}.site-nav li{display:inline-block}@media(min-width:768px){.nav-home{display:none}}.site-nav a{margin-right:20px;font-size:18px;line-height:1.15;color:#000;position:relative;padding-bottom:5px;display:block;text-decoration:none}.site-nav li:last-child a{margin-right:0}.site-nav a:before,.site-logo a:before{content:"";position:absolute;bottom:0;height:2px;width:0;left:0;background:var(--color-accent);transition:width .15s ease}.site-nav a:hover:before,.site-nav a[aria-current=page]:before,.site-logo a:hover:before,.site-logo a:focus-visible:before{width:100%}.site-nav a[aria-current=page]{font-weight:700}.hamburger{display:none;padding:8px;cursor:pointer;background:transparent;border:0;z-index:9999;position:relative;top:calc(-13px * (1 - var(--header-progress)));margin-left:auto}.hamburger-box{width:30px;height:24px;display:inline-block;position:relative}.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{width:30px;height:2px;background-color:#000;border-radius:2px;position:absolute;transition:transform .2s ease,opacity .2s ease,top .2s ease,background .2s ease}.hamburger-inner{top:50%;display:block;margin-top:-1px}.hamburger-inner:before,.hamburger-inner:after{content:"";display:block}.hamburger-inner:before{top:-8px}.hamburger-inner:after{bottom:-8px}.hamburger.is-active .hamburger-inner{transform:rotate(225deg)}.hamburger.is-active .hamburger-inner:before{top:0;opacity:0}.hamburger.is-active .hamburger-inner:after{bottom:0;transform:rotate(-90deg)}@media(max-width:767.98px){.hamburger{display:block}.site-header-page-title{font-size:15px}.site-nav{position:fixed;width:100%;background:#fff;top:0;left:0;margin:0;text-align:left;height:100vh;min-height:400px;padding:160px 15px 15px;overflow-y:auto;display:none}.site-nav.is-open{display:block}.site-nav ul{display:block;margin-left:0}.site-nav li{display:block;margin-bottom:10px;opacity:0;transform:translate(-10px);transition:opacity .3s ease,transform .3s ease}.site-nav.is-open li{opacity:1;transform:none}.site-nav a{padding:10px 0 2px;font-size:18px;display:inline-block}}.hero{background-size:cover;background-repeat:no-repeat;background-position:center;position:relative;overflow:hidden}.hero .lead{font-size:28px;font-weight:400}@media(max-width:991.98px){.hero .lead{font-size:20px}}.hero-cover{position:absolute;inset:0;z-index:-1}.hero-cover>img{position:absolute;min-width:100%;min-height:100%;width:auto;height:auto;top:50%;left:50%;transform:translate(-50%,calc(-50% + var(--parallax-y, 0px)));object-fit:cover;max-width:none}@media(prefers-reduced-motion:no-preference){[data-hero-parallax] .hero-cover>img{min-height:124%;will-change:transform}}.hero.is-overlay:before{content:"";position:absolute;background:var(--color-hero-wash);inset:0}.hero.is-overlay h1,.hero.is-overlay .lead{color:#fff}.hero.is-overlay .lead{opacity:.9}.hero,.intro{height:90vh;min-height:var(--hero-min)}.hero--compact,.hero--compact .intro{height:calc(90vh * .7);min-height:calc(var(--hero-min) * .7)}.about-quote-pin{height:260vh;position:relative;background:#fff}.hero--about,.hero--about .intro{height:100svh;min-height:100svh}.hero--about{position:sticky;top:0;overflow:hidden;background:#fff}.hero--about.is-overlay:before{display:none}.hero--about .container{position:relative;z-index:4}.hero--about h1,.hero--about .lead{text-shadow:0 10px 36px rgba(0,0,0,.35);padding-inline:.75rem}.hero--about .lead{text-wrap:balance}.hero--home,.hero--home .intro,.hero--work,.hero--work .intro,.hero--case,.hero--case .intro{height:auto;min-height:0}.hero--home,.hero--work,.hero--case{padding:8.5rem 0 3rem;overflow:visible}.hero--work,.hero--case{padding-top:12rem}.hero--case{padding-bottom:.5rem}.hero--case .lead{margin-bottom:0}.hero--home .hero-body{margin-top:2.5rem;position:relative;z-index:1}.hero--home~.portfolio-overlap,.hero--work~.portfolio-overlap{margin-top:2.5rem}.hero--case~.portfolio-overlap{margin-top:1.25rem}.hero h1,.intro h1{color:#000;font-size:clamp(2.25rem,6vw,4.375rem);font-weight:500;line-height:1.15;margin:0 0 .4em}.hero-title--xl{font-size:clamp(2.5rem,10vw,5.625rem)!important}.lead--xl{font-size:clamp(1.35rem,4.2vw,2.5rem)!important;font-weight:700}.quote-stage{overflow:hidden}.quote-photo{position:absolute;inset:0;background:url(/images/about/commu-bg.jpg) center / cover no-repeat}.quote-photo:after{content:"";position:absolute;inset:0;background:rgb(from var(--color-hero-wash) r g b / .45)}.quote-veil{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.quote-field{position:absolute;inset:0;z-index:2;pointer-events:none}.quote-intro{transition:none}.quote-bubble{--font-quote: "Dancing Script", "Segoe Script", "Apple Chancery", cursive;position:absolute;left:50%;top:120%;margin:0;aspect-ratio:.88 / 1;background:#fff;opacity:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:8%;box-sizing:border-box;will-change:transform,opacity}.quote-bubble.has-quote{aspect-ratio:1.72 / 1;padding:8% 7% 9%;overflow:visible}.quote-bubble[data-blob="1"]{aspect-ratio:.78 / 1;border-radius:78% 22% 64% 36%/32% 72% 28% 68%}.quote-bubble[data-blob="2"]{aspect-ratio:.96 / 1;border-radius:28% 72% 38% 62%/64% 26% 74% 36%}.quote-bubble[data-blob="3"]{aspect-ratio:.7 / 1;border-radius:58% 42% 24% 76%/30% 62% 38% 70%}.quote-bubble[data-blob="4"]{aspect-ratio:1.12 / 1;border-radius:40% 60% 72% 28%/58% 22% 78% 42%}.quote-bubble[data-blob="5"]{aspect-ratio:.82 / 1;border-radius:82% 18% 46% 54%/36% 64%}.quote-bubble[data-blob="6"]{aspect-ratio:.86 / 1;border-radius:34% 66% 52% 48%/70% 42% 58% 30%}.quote-bubble.is-focus{aspect-ratio:1.85 / 1;padding:7% 6% 8%}.quote-bubble.has-cite{flex-direction:column;gap:.28em;padding-bottom:12%}.quote-cite{margin:0;font-family:var(--font);font-size:clamp(.52rem,.78vw,.68rem);font-weight:400;font-style:normal;line-height:1.2;letter-spacing:.01em;color:#b0b0b0;text-align:center;white-space:nowrap;transform:translateY(1.35rem)}.quote-bubble blockquote{margin:0;display:flex;align-items:stretch;justify-content:center;gap:.12em;width:100%;font-family:var(--font-quote);font-style:normal;font-weight:600;color:#1a1a1a;transform:none}.quote-lines{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.02em;min-width:0;text-align:center}.quote-line{display:block;white-space:nowrap;line-height:1.15}.quote-mark{font-family:Georgia,Iowan Old Style,Palatino Linotype,Palatino,serif;font-style:italic;font-weight:700;font-size:3.4em;line-height:.68;color:var(--color-accent);flex:0 0 auto}.quote-mark--open{align-self:flex-start;margin-top:-.08em}.quote-mark--close{align-self:flex-end;margin-bottom:-.12em}.quote-emoji{font-size:.78em;font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.quote-bubble[data-size=sm] .quote-lines{font-size:clamp(1.05rem,1.7vw,1.45rem)}.quote-bubble[data-size=md] .quote-lines{font-size:clamp(1.28rem,2.15vw,1.85rem)}.quote-bubble[data-size=lg] .quote-lines{font-size:clamp(1.5rem,2.6vw,2.25rem)}.quote-bubble.is-focus .quote-lines{font-size:clamp(1.7rem,3vw,2.55rem)}.quote-bubble:not(.has-quote){padding:0}@media(max-width:767.98px){.quote-bubble[data-show=desktop]{display:none}.about-quote-pin{height:220vh}.quote-bubble.has-quote{width:82%!important}.quote-bubble.is-focus{width:88%!important}.quote-mark{font-size:2.35em}.quote-bubble[data-size=sm] .quote-lines{font-size:clamp(.95rem,4vw,1.18rem)}.quote-bubble[data-size=md] .quote-lines{font-size:clamp(1.08rem,4.6vw,1.35rem)}.quote-bubble[data-size=lg] .quote-lines,.quote-bubble.is-focus .quote-lines{font-size:clamp(1.18rem,5.2vw,1.5rem)}.quote-cite{font-size:clamp(.48rem,2vw,.6rem);transform:translateY(1rem)}}@media(prefers-reduced-motion:reduce){.about-quote-pin{height:auto}.hero--about{position:relative}.quote-bubble,.quote-veil,.quote-photo{will-change:auto}}html.about-quote-seen .about-quote-pin{display:none}html.about-quote-seen #about-body{padding-top:6.5rem}html.about-quote-seen .site-header{background:#fff;border-bottom-color:var(--color-border)}html.about-quote-seen .site-header.is-light .site-logo a,html.about-quote-seen .site-header.is-light .site-nav a,html.about-quote-seen .site-header.is-light .site-header-page-title{color:#000}html.about-quote-seen .site-header.is-light .hamburger-inner,html.about-quote-seen .site-header.is-light .hamburger-inner:before,html.about-quote-seen .site-header.is-light .hamburger-inner:after{background-color:#000}button.quote-replay{padding:0;border:0;background:none;font-family:inherit;cursor:pointer}@media(max-width:991.98px){.hero,.intro{height:auto;min-height:70svh;padding:8.5rem 0 4.5rem}.hero--compact,.hero--compact .intro{min-height:49svh}.hero--home,.hero--home .intro,.hero--work,.hero--work .intro,.hero--case,.hero--case .intro{min-height:0}.hero--case .intro{padding:0}.hero--work,.hero--case{padding-top:12rem}.hero--case{padding-bottom:.5rem}.hero--about,.hero--about .intro{height:100svh;min-height:100svh;padding:0}}.word-rotator{--flip-ease: cubic-bezier(.65, 0, .15, 1);--flip-duration: .5s;color:var(--color-accent);font-style:normal;font-weight:inherit;font-family:inherit;display:inline-block;vertical-align:bottom;perspective:28rem}.word-rotator.is-switching{transition:width var(--flip-duration) var(--flip-ease)}.word-rotator-board{display:block;position:relative;overflow:hidden;background:#fff;transform-style:preserve-3d}.word-rotator-out,.word-rotator-in{display:block;white-space:nowrap;backface-visibility:hidden}.word-rotator-out{transform:translateY(0)}.word-rotator-in{position:absolute;left:0;top:0;background:#fff;transform:translateY(110%)}.word-rotator.is-switching .word-rotator-out,.word-rotator.is-switching .word-rotator-in{transition:transform var(--flip-duration) var(--flip-ease)}.word-rotator.is-switching .word-rotator-out{transform:translateY(-110%)}.word-rotator.is-switching .word-rotator-in{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.word-rotator-in{display:none}}.portfolio-overlap{position:relative;margin-top:-100px}@media(max-width:991.98px){.portfolio-overlap{margin-top:-50px}.hero--home~.portfolio-overlap,.hero--work~.portfolio-overlap{margin-top:2rem}.hero--case~.portfolio-overlap{margin-top:1rem}}.project-toolbar{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;column-gap:1.15rem;row-gap:.85rem;min-height:40px;margin:0 0 1.35rem}.project-toolbar>.section-intro{margin:0 auto 0 0;line-height:1.35;flex:0 0 auto}.project-toolbar>.text-link{line-height:1.35;flex:0 0 auto}.view-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;align-self:center;flex-shrink:0;width:84px;height:40px;padding:3px;border-radius:999px;background:#ececec;box-shadow:inset 0 0 0 1px #0f172a0a;user-select:none}.view-switch-thumb{position:absolute;top:3px;left:3px;width:39px;height:34px;border-radius:999px;background:#fff;box-shadow:0 1px 2px #0f172a0f,0 8px 18px #0f172a14;transition:transform .35s cubic-bezier(.22,1,.36,1);pointer-events:none}.project-board[data-view=list] .view-switch-thumb{transform:translate(39px)}.view-switch-btn{position:relative;z-index:1;display:grid;place-items:center;margin:0;padding:0;border:0;background:transparent;color:#8a8a8a;cursor:pointer;border-radius:999px;transition:color .2s ease}.view-switch-btn svg{width:17px;height:17px}.view-switch-btn:hover{color:#4a4a4a}.view-switch-btn[aria-checked=true]{color:var(--color-accent-deep)}.view-switch-btn:focus-visible{outline:var(--focus);outline-offset:2px}.project-grid{display:flex;flex-wrap:wrap;margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);overflow:visible}.project-board[data-view=list] .project-grid,.project-board[data-view=grid] .project-list{display:none}.project-list{display:flex;flex-direction:column}.project-list-head,.project-row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:center;padding:1.05rem .85rem;margin-inline:-.7rem}.project-list-head{padding-top:0;padding-bottom:.7rem;border-bottom:1px solid #ececec;font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#b0b0b0}.project-row{text-decoration:none;color:inherit;width:100%;box-sizing:border-box;border-bottom:1px solid #ececec;transition:background .2s ease,border-color .2s ease}.project-row:hover,.project-row:focus-visible{background:color-mix(in oklab,var(--color-accent) 10%,#fff);border-bottom-color:color-mix(in oklab,var(--color-accent) 22%,#ececec)}.project-row-project{display:flex;align-items:center;gap:1rem;min-width:0}.project-row-thumb{flex:0 0 88px;width:88px;height:58px;overflow:hidden;background:#f4f4f4}.project-row-thumb img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .5s ease}.project-row-title{font-size:1.05rem;line-height:1.3;font-weight:500;color:#111;min-width:0;overflow-wrap:break-word;transition:font-weight .15s ease,color .15s ease}.project-row-client,.project-row-industry{font-size:.95rem;line-height:1.4;color:var(--color-muted)}@media(hover:hover)and (pointer:fine){.project-row:hover .project-row-thumb img,.project-row:focus-visible .project-row-thumb img{transform:scale(1.04)}.project-row:hover .project-row-title,.project-row:focus-visible .project-row-title{font-weight:700;color:#000}}@media(max-width:767.98px){.project-list-head{display:none}.project-row{grid-template-columns:1fr;gap:.35rem;padding:1rem .75rem;margin-inline:-.75rem}.project-row-client,.project-row-industry{padding-left:calc(88px + 1rem);font-size:.875rem}.project-row-industry{margin-top:-.1rem}}@media(prefers-reduced-motion:reduce){.view-switch-thumb,.project-row-thumb img{transition:none}}.project-cell{width:100%;padding-left:var(--gutter);padding-right:var(--gutter)}@media(min-width:768px){.project-cell.half,.project-cell.third{width:50%}}@media(min-width:992px){.project-cell.third{width:33.333333%}}.project{position:relative;display:block;width:100%;margin-bottom:30px;text-decoration:none;color:inherit}.project-media{position:relative;overflow:visible}.project-glow{--shadow-x: 0px;--shadow-y: 0px;position:absolute;inset:0;z-index:0;pointer-events:none;background:none;box-shadow:var(--shadow-x) calc(1.56vw + var(--shadow-y)) 13vw 1.8vw color-mix(in oklab,color-mix(in oklab,var(--color-accent-deep) 78%,#072525) 20%,transparent);opacity:0;transition:opacity .75s cubic-bezier(.22,1,.36,1)}.project figure{position:relative;z-index:1;overflow:hidden;isolation:isolate}.project img{width:100%;height:auto;transform:scale(1);transition:transform .5s ease}.project figure:after{content:"";position:absolute;inset:0;pointer-events:none;background:color-mix(in oklab,var(--color-accent) 48%,white);mix-blend-mode:overlay;opacity:0;transition:opacity .5s ease}@media(hover:hover)and (pointer:fine){.project:hover img,.project:focus-visible img,.project:focus-within img{transform:scale(1.04)}.project:hover .project-glow,.project:focus-visible .project-glow,.project:focus-within .project-glow{opacity:1}.project:hover figure:after,.project:focus-visible figure:after,.project:focus-within figure:after{opacity:.5}}@media(prefers-reduced-motion:reduce){.project img{transform:none}.project:hover img,.project:focus-visible img,.project:focus-within img{transform:none}.project-glow{box-shadow:0 16px 15.6vw 1vw color-mix(in oklab,color-mix(in oklab,var(--color-accent-deep) 72%,#072525) 50%,transparent)}}.project-caption{position:relative;z-index:1;padding:1rem .1rem .15rem}.project-caption h2{font-size:22px;line-height:1.25;margin:0 0 .2rem;font-weight:400;color:#333;transition:font-weight .15s ease,color .15s ease}.project:hover .project-caption h2,.project:focus-visible .project-caption h2,.project:focus-within .project-caption h2{font-weight:700;color:#000}.project-caption p,.project-summary{margin:0;font-size:15px;line-height:1.45;color:var(--color-muted)}.project-summary{position:relative;padding-bottom:18px}.project-summary:before{content:"";position:absolute;bottom:0;height:2px;width:0;left:0;background:var(--color-accent);transition:width .5s ease}.project:hover .project-summary:before,.project:focus-visible .project-summary:before,.project:focus-within .project-summary:before{width:100%}@media(hover:hover)and (pointer:fine){.project-summary span{opacity:0;transition:opacity .5s ease}.project:hover .project-summary span,.project:focus-visible .project-summary span,.project:focus-within .project-summary span{opacity:1}}.section{padding:7em 0}.section.about-strengths{padding-bottom:0}#about-body{padding-top:1em;padding-bottom:0}#experience{padding-top:6.5em}#working-with-experience{scroll-margin-top:6.5rem}html:has(#working-with-experience:target){scroll-behavior:auto}@media(max-width:991.98px){.section{padding:3em 0}#experience{padding-top:4.5em}}.section h2{line-height:1.5}.section-heading{font-size:22px;font-weight:400;line-height:1.25;color:#333;margin-bottom:30px;display:block;position:relative}.section-heading:after{content:"";height:2px;width:30%;position:absolute;top:50%;right:0;transform:translate(-50%);background:#000}.section-intro{font-size:clamp(1.35rem,2.4vw,2rem);color:#4a4a4a;font-weight:300;line-height:1.35;margin:0 0 4rem}.intro h1+.section-intro{margin-bottom:0}.portfolio-overlap .section-intro{margin-bottom:1.75rem}.portfolio-overlap .project-toolbar>.section-intro{margin:0 auto 0 0}.work-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}.work-heading .section-intro{margin:0}.text-link{font-size:1rem;font-weight:300;line-height:1.35;color:#4a4a4a;text-decoration:none;flex-shrink:0;position:relative;display:inline-block}.text-link:before{content:"";position:absolute;bottom:-.15em;height:2px;width:0;left:0;background:var(--color-accent);transition:width .15s ease}.text-link:hover:before,.text-link:focus-visible:before{width:100%}.service-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem 1rem;min-width:0;margin:0 0 1.25rem}.service-heading h2{margin:0;min-width:0;flex:1 1 auto}.service-heading .text-link{flex-shrink:0}.service-grid{display:grid;grid-template-columns:1fr;gap:1.15rem}#about-body .service-grid{margin:0}@media(min-width:700px){.service-grid{grid-template-columns:1fr 1fr;gap:1.25rem}#about-body .service-grid,#experience .service-grid{grid-template-columns:1fr 1fr 1fr}}.service-card{--font-card: "Plus Jakarta Sans", var(--font);background:#fff;border-radius:16px;padding:1.15rem 1.25rem;box-shadow:0 1px 2px rgb(from var(--color-shadow) r g b / .04),0 10px 28px rgb(from var(--color-shadow) r g b / .07);display:flex;flex-direction:row;align-items:flex-start;gap:1rem;min-height:100%;font-family:var(--font-card);transition:box-shadow .25s ease,transform .25s ease}.service-card-icon{width:2.75rem;height:2.75rem;border-radius:12px;background:color-mix(in oklab,var(--color-accent) 14%,#fff);display:flex;align-items:center;justify-content:center;flex-shrink:0}.service-card-icon span{font-size:1.2rem;color:var(--color-accent-deep);line-height:1}.service-card-icon svg{width:1.2rem;height:1.2rem;color:var(--color-accent-deep);display:block}.service-card-body{min-width:0}.service-card h2,.service-card h3{font-family:inherit;font-size:1.0625rem;font-weight:600;letter-spacing:-.03em;line-height:1.3;color:#111;margin:0 0 .3rem}.service-card p,.service-card .skill-list{margin:0;font-size:.9375rem;font-weight:400;line-height:1.55;color:var(--color-text)}.service-card .skill-list{list-style:disc;padding:.1rem 0 0 1.25em;line-height:1.65}.service-card .skill-list li{padding:.22rem 0}.service-card .skill-list li+li{margin-top:.12rem}#experience .service-card:has(.skill-list){padding:1.45rem 1.4rem 1.6rem;min-height:21rem;gap:1rem}#experience .service-card:has(.skill-list) .service-card-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}#experience .service-card:has(.skill-list) h3{margin-bottom:.7rem;font-size:1.1875rem}#experience .service-card:has(.skill-list) .skill-list{flex:1 1 auto;font-size:1.0625rem}#experience .service-card:has(.skill-list) .skill-list li{padding:.28rem 0}#experience .service-card:has(.skill-list) .skill-list li+li{margin-top:.16rem}#experience .service-grid{gap:1.35rem}@media(hover:hover)and (pointer:fine){.service-card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgb(from var(--color-shadow) r g b / .05),0 18px 36px rgb(from var(--color-shadow) r g b / .1)}}@media(prefers-reduced-motion:reduce){.service-card{transition:none}.service-card:hover{transform:none}}.pill{display:inline-flex;align-items:center;gap:.4em;padding:5px 12px 5px 10px;border-radius:50px;background:var(--color-pill);color:#000;margin:0 6px 10px 0;font-size:16px;line-height:1.3;vertical-align:middle}.pill--lg{padding:10px 20px 10px 16px;font-size:20px}.pill a{color:inherit;text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.4em;position:relative;padding-bottom:3px}.pill a:before{content:"";position:absolute;bottom:0;left:0;height:2px;width:0;background:#000;transition:width .15s ease}.pill a:hover:before,.pill a:focus-visible:before{width:100%}.pill [class^=icon-]{font-size:.85em;color:#111}.button{padding:15px 40px;display:inline-block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#fff;border-radius:30px;border:none;text-decoration:none;background:var(--color-accent);transition:box-shadow .3s ease,background .3s ease,color .3s ease}.button:hover{color:#fff;text-decoration:none;box-shadow:0 5px 10px -1px rgb(from var(--color-shadow) r g b / .12)}.button--ghost{background:var(--color-button-ghost);color:#5e5e5e}.button--ghost:hover{background:var(--color-accent);color:#fff}.work-detail{margin-bottom:50px;background:#fff;border-radius:16px;padding:1.35rem 1.25rem 1.2rem;box-shadow:0 1px 2px rgb(from var(--color-shadow) r g b / .04),0 10px 28px rgb(from var(--color-shadow) r g b / .07)}.work-detail>div{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;min-width:0}.work-detail>div:last-child{margin-bottom:0}.work-detail>div>:last-child{min-width:0}.work-detail dt{display:block;font-size:1.0625rem;font-weight:600;letter-spacing:-.03em;line-height:1.3;color:#111;margin:0 0 .2rem}.work-detail dd{font-weight:400;color:var(--color-text);margin:0;line-height:1.55}@media(min-width:768px){.work-detail{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem 2rem;padding:1.6rem 1.85rem}.work-detail>div{margin-bottom:0}}.split{display:grid;gap:0 2rem;margin-bottom:3rem}@media(min-width:768px){.split{grid-template-columns:1fr 1fr}}.split-label{display:block;font-weight:700;color:#000;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.split p{margin:0}.split ul{margin:0;padding-left:1.1rem}.case-body{color:var(--color-text)}.case-body h2,.case-body h3{font-weight:700;color:#000;margin:2rem 0 .65rem;line-height:1.45}.case-body h2{font-size:1.35rem}.case-body h3{font-size:1.05rem}.case-body p{margin:0 0 1.15rem}.case-body ul,.case-body ol{margin:0 0 1.25rem;padding-left:1.2rem}.case-body li{margin-bottom:.25rem}.case-body figure,.case-body p>img,.case-body img{margin:0 auto 2.4rem}.case-body figure img,.case-body p img{width:100%}.case-body .split{margin-top:.5rem}.case-hero-image{margin:0 auto 2.8rem}.back-row{margin-bottom:1.4rem}.profile-grid{display:grid;gap:2rem;margin:0}@media(min-width:768px){.profile-grid{grid-template-columns:repeat(3,1fr)}}.profile-card img{width:90px;height:90px;object-fit:cover;border-radius:50%;margin-bottom:20px}.profile-card h3{font-size:18px;color:#000;margin:0;font-weight:700}.profile-card .sub{color:#8a8a8a;margin:0 0 20px;text-transform:uppercase;font-size:15px;letter-spacing:.04em}.profile-card p{margin:0 0 .8rem}.site-footer{padding:1.5em 0;border-top:1px solid var(--color-border)}.site-footer .container-fluid{max-width:100%}.site-footer p{margin:0}.to-top-wrap{text-align:center;padding:1rem 0 2.5rem}.to-top-sep{margin:0 .55em;color:#4a4a4a;font-weight:300}.back-to-top{position:fixed;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));z-index:9000;width:3.25rem;height:3.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--color-heading);text-decoration:none;border:1px solid var(--color-border);box-shadow:0 8px 24px #0f172a1f;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease,visibility .35s ease,color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}.back-to-top svg{width:1.4rem;height:1.4rem}.back-to-top:hover,.back-to-top:focus-visible{color:#fff;background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 8px 24px rgb(from var(--color-shadow) r g b / .18)}.menu-open .back-to-top{opacity:0!important;visibility:hidden;pointer-events:none}@font-face{font-family:icomoon;src:url(/fonts/icomoon/fonts/icomoon.woff) format("woff"),url(/fonts/icomoon/fonts/icomoon.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}[class^=icon-],[class*=" icon-"]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-aperture:before{content:""}.icon-at-sign:before{content:""}.icon-feather:before{content:""}.icon-layers2:before{content:""}.icon-mail:before{content:""}.icon-monitor:before{content:""}.icon-package:before{content:""}.icon-phone2:before{content:""}.icon-search:before{content:""}.icon-settings:before{content:""}.icon-linkedin2:before{content:""}@media(prefers-reduced-motion:no-preference){.reveal{animation:reveal .85s ease both}}@keyframes reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.cv-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .15em}.cv-heading h1{margin:0;min-width:0}.cv-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:5rem;height:5rem;margin-right:-1rem;color:var(--color-heading);text-decoration:none;border-radius:50%;transition:color .2s ease,background .2s ease}.cv-close svg{width:3rem;height:3rem}.cv-close:hover,.cv-close:focus-visible{color:var(--color-accent-deep);background:var(--color-button-ghost)}.hero--work .cv-heading+.section-intro{margin-bottom:.4em}.cv-contacts .pill{padding:10px 20px 10px 16px;font-size:20px;margin:0 8px 12px 0}.hero--work .cv-current{margin:1.25rem 0 1.5rem;color:var(--color-heading);font-size:1.125rem}.cv-current-org{color:var(--color-accent-deep)}.cv-contacts{margin:0 0 1.25rem}.cv-actions{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin:0}.cv-body{padding-bottom:4rem}.cv-toc{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin:0 0 3rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border)}.cv-toc a{font-size:1rem;font-weight:300;color:#4a4a4a;text-decoration:none;position:relative;display:inline-block;padding-bottom:5px}.cv-toc a:before{content:"";position:absolute;bottom:0;height:2px;width:0;left:0;background:var(--color-accent);transition:width .15s ease}.cv-toc a:hover:before,.cv-toc a:focus-visible:before{width:100%}.cv-section{margin-bottom:4rem;scroll-margin-top:6.5rem}.cv-role[id],.cv-toc{scroll-margin-top:6.5rem}.cv-section h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:500;line-height:1.3;margin:0 0 1.5rem}#profile p{margin:0 0 1.15rem}.cv-timeline{list-style:none;padding:0;margin:0}.cv-timeline>li{border-top:1px solid var(--color-border)}.cv-timeline>li:last-child{border-bottom:1px solid var(--color-border)}.cv-role{display:grid;grid-template-columns:4.75rem minmax(0,1fr);grid-template-areas:"logo body" "logo dates";column-gap:1rem;row-gap:.35rem;padding:1.75rem 0;align-items:start}.cv-org-logo{grid-area:logo;height:48px;width:4.75rem;max-width:4.75rem;object-fit:contain;object-position:left center;margin-top:.15rem}.cv-role-body{grid-area:body;min-width:0}.cv-role-dates{grid-area:dates;margin:0;font-size:15px;color:var(--color-caption);line-height:1.5;text-align:right}.cv-role-duration{display:block;font-size:13px;color:var(--color-muted)}@media(min-width:768px){.cv-role{grid-template-columns:6.5rem minmax(0,1fr) 13.5rem;grid-template-areas:"logo body dates";column-gap:1.5rem}.cv-org-logo{width:6.5rem;max-width:6.5rem;height:52px}.cv-role-dates{margin-top:.2rem}}.cv-role-body h3{font-size:18px;font-weight:700;margin:0 0 .15rem;line-height:1.35}.cv-role-type{font-weight:400;color:var(--color-muted)}.cv-role-org{color:var(--color-accent-deep);margin:0 0 .85rem;font-size:1rem}.cv-role-body ul{margin:0;padding-left:0;list-style:none}.cv-role-body li{position:relative;margin-bottom:.35rem;padding-left:1.15rem}.cv-role-body li:before{content:"";position:absolute;left:0;top:.7em;width:.4em;height:.4em;border-radius:50%;background:var(--color-accent)}.cv-skill-groups{display:flex;flex-direction:column;gap:1.35rem;margin-top:.25rem}.cv-skill-group{display:grid;gap:.7rem;padding-top:1.35rem;border-top:1px solid var(--color-border)}.cv-skill-group h3{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);line-height:1.4}@media(min-width:700px){.cv-skill-group{grid-template-columns:7.5rem minmax(0,1fr);column-gap:1.75rem;align-items:start}.cv-skill-group h3{padding-top:.55rem}}.cv-pill-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.cv-pill-list li{display:inline-flex;align-items:center;gap:.5rem;width:fit-content;max-width:100%;margin:0;padding:.4rem .85rem .4rem .65rem;border-radius:50px;background:#f7f8f8;font-size:.9375rem;font-weight:500;line-height:1.35;color:#111}.cv-star{width:.9rem;height:.9rem;flex-shrink:0;fill:color-mix(in oklab,var(--color-accent) 72%,#7ec8e3)}.cv-pill-list img{width:1.2rem;height:1.2rem;object-fit:contain;flex-shrink:0}.cv-flag{width:1.2rem;height:1.2rem;border-radius:50%;object-fit:cover;flex-shrink:0}.cv-lang-level{color:var(--color-caption);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:400}@media print{.skip-link,.site-header,.site-footer,.cv-toc,.cv-actions,.cv-close,.to-top-wrap,.back-to-top{display:none!important}.hero--work{padding:0 0 1.5rem}.cv-role,.cv-skill-group,.profile-card,.service-card{break-inside:avoid}}
