:root{--ink:#0a0a0a;--ink-soft:#1a1a1a;--gray-900:#2a2a2a;--gray-700:#828282;--gray-500:#888;--gray-300:#c8c8c8;--gray-200:#e6e6e6;--gray-100:#f2f2f2;--paper:#fafaf8;--white:#fff;--link:#0a0a0a;--link-hover:#1a1a1a;--font-display:var(--font-bricolage), -apple-system, sans-serif;--font-body:var(--font-mono-jb), "SF Mono", Menlo, monospace;--font-mono:var(--font-mono-jb), "SF Mono", Menlo, monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--sidebar-width:472px;--content-max:980px;--radius:22px;--ease:cubic-bezier(.22, .61, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:clip}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);min-height:100vh;font-size:1rem;font-weight:400;line-height:1.65}a{color:inherit;transition:opacity .2s var(--ease);text-decoration:none}a:hover{opacity:.55}img{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}.page{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--gray-200);background:var(--paper);scrollbar-width:none;-ms-overflow-style:none;align-self:start;height:100vh;padding:40px 40px 32px;position:sticky;top:0;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.sidebar__actions{align-items:center;gap:12px;margin-top:32px;display:flex}.sidebar__portrait{width:auto;margin:0}.sidebar__avatar{aspect-ratio:3/2;background:var(--gray-200);border-radius:var(--radius);flex-shrink:0;width:100%;height:auto;position:relative;overflow:hidden}.sidebar__avatar-photo{background:var(--gray-200);border-radius:inherit;position:absolute;inset:0;overflow:hidden}.sidebar__avatar-photo .slideshow,.sidebar__avatar-photo img,.sidebar__avatar-photo video{object-fit:cover;width:100%;height:100%}.sidebar__name{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);margin:24px 0 0;font-size:2.5rem;font-weight:500;line-height:1.05}.sidebar__bio{color:var(--gray-700);margin-top:24px;font-size:.875rem;font-weight:400;line-height:1.7}.bio-mention{color:var(--ink);font-weight:500}.bio-link{color:var(--link);transition:color .2s var(--ease), opacity .2s var(--ease);font-weight:600;text-decoration:none}.bio-link:hover{opacity:1;color:var(--link-hover)}.sidebar__contact{gap:var(--space-3);font-family:var(--font-mono);flex-direction:column;margin-top:24px;padding-top:0;font-size:.875rem;font-weight:400;list-style:none;display:flex}.sidebar__contact li{flex-direction:column;gap:2px;display:flex}.sidebar__resume{justify-content:flex-start;align-items:center;gap:var(--space-3);height:56px;color:var(--ink);cursor:pointer;font-family:var(--font-mono);text-align:left;transition:background .25s var(--ease), transform .25s var(--ease);transform-origin:50%;will-change:transform;background:#e8ebef;border:none;border-radius:999px;flex:auto;padding:0 24px;font-size:.875rem;font-weight:600;text-decoration:none;display:flex;transform:scale(1)}.sidebar__resume:hover,.sidebar__resume:focus-visible{background:#d8dce2;transform:scale(1.02)}.sidebar__resume:active{transform:scale(.95)}.sidebar__resume-label{flex:none}.sidebar__resume-icon,.sidebar__resume-download{flex-shrink:0}.sidebar__resume-download-btn{width:56px;height:56px;color:var(--ink);cursor:pointer;transition:background .25s var(--ease), transform .25s var(--ease);transform-origin:50%;will-change:transform;background:#e8ebef;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;transform:scale(1)}.sidebar__resume-download-btn:hover,.sidebar__resume-download-btn:focus-visible{background:#d8dce2;transform:scale(1.08)}.resume-dl{position:relative;overflow:visible}.resume-dl.is-pressed{transform:scale(.9)}.resume-dl.is-loading,.resume-dl.is-success{cursor:default}.resume-dl.is-loading:hover{background:#e8ebef;transform:scale(1)}.resume-dl.is-success:hover,.resume-dl.is-success:focus-visible{background:#3fd16a;transform:scale(1)}.resume-dl__ring{pointer-events:none;opacity:0;transition:opacity .2s var(--ease);position:absolute;inset:0}.resume-dl__ring-spin{transform-origin:50%}.resume-dl__ring circle{stroke:var(--ink);stroke-width:3px;stroke-linecap:round}.resume-dl.is-loading .resume-dl__ring{opacity:1}.resume-dl.is-loading .resume-dl__ring-spin{animation:.85s linear infinite resume-dl-spin}@keyframes resume-dl-spin{to{transform:rotate(360deg)}}.resume-dl.is-success{color:var(--white);background:#3fd16a;animation:.28s cubic-bezier(.34,1.56,.64,1) both resume-dl-pop}@keyframes resume-dl-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}.resume-dl__icon,.resume-dl__check{transition:opacity .25s var(--ease), transform .25s var(--ease);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resume-dl__check{opacity:0;color:var(--white);transform:translate(-50%,-50%)scale(.6)}.resume-dl.is-success .resume-dl__icon{opacity:0;transform:translate(-50%,-50%)scale(.6)}.resume-dl.is-success .resume-dl__check{opacity:1;animation:.4s cubic-bezier(.34,1.56,.64,1) both resume-dl-check-pop;transform:translate(-50%,-50%)scale(1)}@keyframes resume-dl-check-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}60%{transform:translate(-50%,-50%)scale(1.18)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.resume-dl.is-loading .resume-dl__ring{animation-duration:1.6s}.resume-dl.is-success .resume-dl__check{animation:none}}.sidebar__contact a{color:var(--ink);width:fit-content;transition:border-color .2s var(--ease), opacity .2s var(--ease);border-bottom:1px solid #0000;padding-bottom:1px;font-weight:600}.sidebar__contact a:hover{opacity:1;border-bottom-color:var(--ink)}.sidebar__ig{align-items:center;gap:6px;display:inline-flex}.ig-icon{flex-shrink:0;margin-bottom:1px}.sidebar__contact-note{font-family:var(--font-body);color:var(--gray-500);letter-spacing:.01em;font-size:.8125rem;font-style:italic}.main{padding:calc(var(--space-8) - 40px) var(--space-7) var(--space-9);max-width:100%}.main__inner{max-width:var(--content-max);margin:0 auto}.filter{top:env(safe-area-inset-top,0px);z-index:100;padding:var(--space-7) 0 var(--space-6);margin-top:calc(var(--space-8) * -1 - 20px);margin-bottom:calc(var(--space-6) + 40px);background:var(--paper);position:sticky}.filter:before{content:"";top:-200px;bottom:0;left:calc(var(--space-7) * -1);right:calc(var(--space-7) * -1);background:var(--paper);z-index:0;pointer-events:none;position:absolute}.filter:after{content:"";height:calc(var(--space-6) + 24px);z-index:0;pointer-events:none;opacity:0;transition:opacity .2s var(--ease,ease);background:linear-gradient(#00000014 0%,#00000005 60%,#0000 100%);position:absolute;top:100%;left:-24px;right:-24px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 24px calc(100% - 24px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 24px calc(100% - 24px),#0000 100%)}.filter.is-elevated:after{opacity:1}.filter__nav{z-index:1;gap:var(--space-2);flex-wrap:wrap;display:flex;position:relative}.filter__btn{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--gray-700);transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);transform-origin:50%;will-change:transform;background:#e8ebef;border-radius:999px;padding:.5rem .875rem;font-size:.6875rem;font-weight:500;transform:scale(1)}.filter__btn:hover{color:var(--ink);background:#dde1e6;transform:scale(1.05)}.filter__btn.is-active,.filter__btn.is-active:hover{background:var(--ink);color:var(--paper)}.view-fade{z-index:1;transition:opacity .26s var(--ease), transform .26s var(--ease);position:relative}.view-fade.is-out{opacity:0;transform:translateY(8px)}.view-title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);font-size:1.75rem;font-weight:500;line-height:1.05}.section-head{align-items:center;gap:var(--space-4);display:flex}.section-back{width:44px;height:44px;color:var(--ink);transition:background .25s var(--ease), transform .25s var(--ease);transform-origin:50%;background:#e8ebef;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;transform:scale(1)}.section-back:hover,.section-back:focus-visible{background:#d8dce2;transform:scale(1.04)}.section-back:active{transform:scale(.9)}.section-back svg{flex-shrink:0}.section-head__title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);font-size:1.75rem;font-weight:500;line-height:1.05}.cards{gap:var(--space-6);flex-direction:column;margin-top:16px;display:flex}.card{text-align:left;background:var(--white);cursor:pointer;width:100%;transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);will-change:transform;border:none;border-radius:30px;padding:40px;display:block;transform:translateY(0)scale(1);box-shadow:0 1px 3px #00000006,0 10px 28px #0000000a}.card:hover,.card:focus-visible{outline:none;transform:translateY(-5px)scale(1.012);box-shadow:0 6px 14px #0000000d,0 28px 60px #00000017}.card__media{aspect-ratio:16/9;background:var(--gray-100);border-radius:30px 30px 0 0;width:calc(100% + 80px);margin:-40px -40px 0;position:relative;overflow:hidden}.card__media img,.card__media video{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease-out);display:block}.card:hover .card__media img,.card:hover .card__media video{transform:scale(1.03)}.card__body{padding:0}.card__title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);margin-top:40px;font-size:1.5rem;font-weight:500;line-height:1.1}.card__desc{color:var(--gray-700);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:10px;font-size:.9375rem;line-height:1.6;display:-webkit-box;overflow:hidden}.card__cta{width:100%;height:52px;color:var(--ink);font-family:var(--font-mono);letter-spacing:.04em;transition:background .25s var(--ease);background:#e8ebef;border-radius:999px;justify-content:center;align-items:center;margin-top:22px;font-size:.875rem;font-weight:600;display:flex}.card:hover .card__cta,.card:focus-visible .card__cta{background:#d8dce2}.grid{gap:var(--space-9);flex-direction:column;display:flex}.grid-item{opacity:1;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);will-change:opacity, transform;transform:translateY(0)}.grid-item.is-visible{opacity:1;transform:translateY(0)}.grid-item.is-hiding{opacity:0;transition:opacity .3s var(--ease), transform .3s var(--ease);transform:translateY(12px)}.grid-item.is-hidden{display:none}.grid-item.is-entering{opacity:0;transform:translateY(20px)}.grid-item__media{aspect-ratio:16/9;background:var(--gray-100);border-radius:var(--radius);width:100%;position:relative;overflow:hidden}.grid-item__pair{justify-content:center;align-items:center;gap:4%;padding:3%;display:flex;position:absolute;inset:0}.slideshow{width:100%;height:100%;display:block;position:relative}.slideshow__img{object-fit:cover;width:100%;height:100%;transition:opacity var(--slideshow-fade,.6s) ease-in-out}.slideshow__img:not(:first-child){opacity:0;position:absolute;inset:0}.slideshow__img.is-active{opacity:1}.slideshow__img:first-child:not(.is-active){opacity:0}.lightbox__img.slideshow{width:max-content;max-width:100%;height:auto;max-height:70vh;display:block;position:relative}.lightbox__img.slideshow .slideshow__img{object-fit:contain;border-radius:var(--radius);width:auto;max-width:100%;height:auto;max-height:70vh;display:block;box-shadow:0 4px 12px #0000000a,0 24px 60px #00000014,0 40px 100px #0000000f}.lightbox__img.slideshow .slideshow__img:not(:first-child){width:100%;height:100%;position:absolute;inset:0}.grid-item__pair img,.grid-item__pair video{object-fit:contain;width:auto;height:auto;transition:transform 1.2s var(--ease-out);border-radius:20px}.grid-item__pair[data-count="2"] img,.grid-item__pair[data-count="2"] video{max-width:50%;max-height:100%}.grid-item__pair[data-count="2"]>:nth-child(2){max-width:42%;max-height:70%}.grid-item__media.is-pair-equal .grid-item__pair[data-count="2"]>:nth-child(2){max-width:50%;max-height:100%}.grid-item__pair[data-count="3"] img,.grid-item__pair[data-count="3"] video{max-width:30%}.grid-item__pair[data-count="4"] img,.grid-item__pair[data-count="4"] video{max-width:22%;max-height:96%}.grid-item__media.is-paired img:not(.grid-item__pair img){display:none}.grid-item__media.is-framed{background:#000}.grid-item__media.is-framed.is-framed-light{background:var(--white)}.grid-item__media.is-framed.is-framed-gray{background:#dfe2e6}.grid-item__media.is-framed.is-framed-dark-gray{background:#141416}.grid-item__media.is-framed>img,.grid-item__media.is-framed>video{object-fit:contain;box-sizing:border-box;border-radius:14px;padding:4%}.grid-item__media.is-framed.is-framed-gray>img,.grid-item__media.is-framed.is-framed-gray>video{border-radius:32px}.grid-item__media.is-framed.is-framed-browser{background:#dfe2e6;position:relative}.grid-item__media.is-framed.is-framed-browser>img,.grid-item__media.is-framed.is-framed-browser>video{object-fit:cover;transform-origin:50%;background:#fff;border-radius:14px;width:80%;height:80%;padding:0;position:absolute;top:10%;left:10%;box-shadow:0 12px 32px #0000001f}.grid-item__media.is-framed.is-framed-browser>video[src*=product-swc],.grid-item__media.is-framed.is-framed-browser>video[src*=product-web-harvard-lenticular],.grid-item__media.is-framed.is-framed-browser>video[src*=product-web-spencers-social],.grid-item__media.is-framed.is-framed-browser>video[src*=product-web-spencers-coffee]{object-fit:cover;width:auto;max-width:92%;height:80%;top:50%;left:50%;transform:translate(-50%,-50%)}.grid-item__media.is-framed.is-framed-browser>video[src*=product-web-harvard-lenticular]{transform:translate(-50%,calc(10px - 50%))}.grid-item__media>img,.grid-item__media>video{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease-out);display:block}.grid-item__placeholder{background:var(--gray-200);width:100%;height:100%}.grid-item__badge{top:var(--space-4);right:var(--space-4);z-index:2;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper);-webkit-backdrop-filter:blur(8px);pointer-events:none;white-space:nowrap;background:#0a0a0ac7;border-radius:999px;padding:.4rem .7rem;font-size:.625rem;font-weight:500;position:absolute}.grid-item:hover .grid-item__media img,.grid-item:hover .grid-item__media video{transform:scale(1.015)}.grid-item:hover .grid-item__media.is-framed-browser>img,.grid-item:hover .grid-item__media.is-framed-browser>video{transform:none}.grid-item:hover .grid-item__media.is-framed-browser>video[src*=product-swc],.grid-item:hover .grid-item__media.is-framed-browser>video[src*=product-web-spencers-social],.grid-item:hover .grid-item__media.is-framed-browser>video[src*=product-web-spencers-coffee]{transform:translate(-50%,-50%)}.grid-item:hover .grid-item__media.is-framed-browser>video[src*=product-web-harvard-lenticular]{transform:translate(-50%,calc(10px - 50%))}.grid-item__meta{margin-top:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.grid-item__title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);font-size:1.375rem;font-weight:500;line-height:1.1}.grid-item__caption{color:var(--gray-700);font-size:.9375rem;line-height:1.65}.footer{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--gray-200);font-family:var(--font-mono);color:var(--gray-500);letter-spacing:.02em;text-transform:uppercase;justify-content:space-between;font-size:.6875rem;display:flex}.grid-item__media{cursor:zoom-in}.lightbox{z-index:100;padding:calc(60px + env(safe-area-inset-top,0px)) var(--space-6) var(--space-6);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease), background-color .5s var(--ease), visibility 0s linear .5s, transform 0s linear .5s;cursor:zoom-out;background:#fff0;flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translateY(-100vh)}.lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .4s var(--ease), background-color .5s var(--ease), visibility 0s linear 0s, transform 0s linear 0s;background:#fffffffa;transform:translateY(0)}.page{transform-origin:50% calc(var(--lightbox-origin-y,50%))}body.lightbox-active .page{transition:transform .6s var(--ease-out), opacity .5s var(--ease)}body.lightbox-open .page{opacity:0;transform:scale(.98)}.lightbox__content{align-items:center;gap:var(--space-6);--lightbox-content-width:min(100%, calc(70vh * 16 / 9));opacity:0;width:100%;max-width:1400px;transition:transform .55s var(--ease-out) .1s, opacity .4s var(--ease) .15s;flex-direction:column;margin:0 auto;display:flex;transform:scale(.9)}.lightbox.is-open .lightbox__content{opacity:1;transform:scale(1)}.lightbox__content.is-leaving-left{opacity:0;transition:transform .28s var(--ease), opacity .22s var(--ease);transform:translate(-40px)scale(1)}.lightbox__content.is-leaving-right{opacity:0;transition:transform .28s var(--ease), opacity .22s var(--ease);transform:translate(40px)scale(1)}.lightbox__content.is-entering-from-right{opacity:0;transition:none;transform:translate(40px)scale(1)}.lightbox__content.is-entering-from-left{opacity:0;transition:none;transform:translate(-40px)scale(1)}.lightbox__media{width:var(--lightbox-content-width);aspect-ratio:16/9;justify-content:center;align-items:center;max-height:70vh;display:flex}.lightbox__media.is-framed{border-radius:var(--radius);background:#000;overflow:hidden;box-shadow:0 4px 12px #0000000a,0 24px 60px #00000014,0 40px 100px #0000000f}.lightbox__media.is-framed.is-framed-light{background:var(--white)}.lightbox__media.is-framed.is-framed-gray{background:#dfe2e6}.lightbox__media.is-framed.is-framed-dark-gray{background:#141416}.lightbox__media.is-framed.is-framed-browser{background:#dfe2e6;position:relative}.lightbox__media.is-framed .lightbox__img{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:none;box-sizing:border-box;border-radius:18px;padding:4%}.lightbox__media.is-framed.is-framed-gray .lightbox__img{border-radius:32px}.lightbox__media.is-framed.is-framed-browser .lightbox__img{object-fit:cover;background:#fff;border-radius:18px;width:80%;max-width:none;height:80%;max-height:none;padding:0;position:absolute;top:10%;left:10%;box-shadow:0 16px 40px #00000026}.lightbox__media.is-framed.is-framed-browser video.lightbox__img[src*=product-swc],.lightbox__media.is-framed.is-framed-browser video.lightbox__img[src*=product-web-harvard-lenticular],.lightbox__media.is-framed.is-framed-browser video.lightbox__img[src*=product-web-spencers-social],.lightbox__media.is-framed.is-framed-browser video.lightbox__img[src*=product-web-spencers-coffee]{object-fit:cover;width:auto;max-width:92%;height:80%;top:50%;left:50%;transform:translate(-50%,-50%)}.lightbox__media.is-paired{flex-direction:row;gap:4%;padding:3%}.lightbox__media.is-paired .lightbox__img{object-fit:contain;width:auto;height:auto;box-shadow:none;border-radius:20px;padding:0}.lightbox__media.is-paired-2 .lightbox__img{max-width:50%;max-height:100%}.lightbox__media.is-paired-2 .lightbox__img--secondary,.lightbox__media.is-paired-2 .lightbox__img:nth-of-type(2){max-width:42%;max-height:70%}.lightbox__media.is-paired-2.is-pair-equal .lightbox__img--secondary,.lightbox__media.is-paired-2.is-pair-equal .lightbox__img:nth-of-type(2){max-width:50%;max-height:100%}.lightbox__media.is-paired-3 .lightbox__img{max-width:30%;max-height:94%}.lightbox__media.is-paired-4 .lightbox__img{max-width:22%;max-height:96%}.lightbox__img{object-fit:contain;border-radius:var(--radius);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:0 4px 12px #0000000a,0 24px 60px #00000014,0 40px 100px #0000000f}.lightbox__meta{justify-content:space-between;align-items:flex-start;gap:var(--space-5);width:var(--lightbox-content-width);color:var(--ink);flex-direction:row;padding:0;display:flex}.lightbox__meta-text{gap:var(--space-3);text-align:left;flex-direction:column;flex:1;min-width:0;display:flex}.lightbox__keyhint{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;padding-top:2px;display:flex}.lightbox__keyhint-keys{gap:4px;display:inline-flex}.lightbox__key{border:1px solid var(--gray-300);background:var(--white);width:26px;height:26px;color:var(--gray-700);font-family:var(--font-mono);border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 1px #00000005}.lightbox__keyhint-label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--gray-500);white-space:nowrap;font-size:.6875rem}.lightbox__title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);font-size:1.375rem;font-weight:500;line-height:1.1}.lightbox__caption{font-family:var(--font-body);color:var(--gray-700);max-width:68ch;margin:0;font-size:.9375rem;line-height:1.65}body.lightbox-open{overflow:hidden}@media (max-width:720px){.lightbox{padding:var(--space-4)}.lightbox__title{font-size:1.125rem}.lightbox__caption{font-size:.9375rem}.lightbox__media{max-height:60vh}.lightbox__keyhint{display:none}}@media (max-width:960px){:root{--sidebar-width:100%}.page{grid-template-columns:1fr;padding-top:44px}.sidebar{border-right:none;border-bottom:1px solid var(--gray-200);height:auto;padding:24px;position:static;overflow-y:visible}.sidebar__name{margin-top:20px;font-size:2rem}.sidebar__bio{margin-top:16px}.sidebar__actions{margin-top:24px}.filter:before{display:none}.filter{margin-top:0}.main{padding:var(--space-5);padding-bottom:44px}.grid{gap:var(--space-8)}.grid-item__title{font-size:1.125rem}.safe-area-cover,.filter:after{display:none!important}.filter{position:sticky;top:44px}}@media (max-width:560px){.sidebar{padding:20px}.main{padding:var(--space-4);padding-bottom:44px}.filter__nav{gap:var(--space-4)}.filter__btn{font-size:.6875rem}}@media (prefers-reduced-motion:reduce){.grid-item,.grid-item__media img,.filter__btn:after{transition:none!important}.grid-item{opacity:1;transform:none}}.resume-overlay{z-index:1000;background:var(--paper);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease), visibility 0s linear .4s, transform 0s linear .4s;position:fixed;inset:0;transform:translateY(-100vh)}.resume-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .4s var(--ease), transform 0s, visibility 0s;transform:translateY(0)}.resume-overlay__scroll{padding:40px var(--space-6) var(--space-9);scrollbar-width:thin;position:absolute;inset:0;overflow:hidden auto}.resume-page{width:100%;max-width:1100px;margin:0 auto}.resume-page__head{margin-bottom:var(--space-7)}.resume-page__body{gap:var(--space-8);grid-template-columns:320px 1fr;align-items:start;display:grid}.resume-page__aside{gap:var(--space-5);flex-direction:column;display:flex}.resume-page__name{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);margin:0;font-size:1.75rem;font-weight:500;line-height:1.05}.resume-page__contact{font-family:var(--font-mono);color:var(--gray-700);flex-direction:column;gap:6px;margin:0;padding:0;font-size:.8125rem;list-style:none;display:flex}.resume-page__contact a{color:var(--gray-700);transition:color .2s var(--ease)}.resume-page__contact a:hover{color:var(--ink)}.resume-page__download{justify-content:center;align-items:center;gap:var(--space-3);background:var(--ink);width:100%;color:var(--paper);cursor:pointer;font-family:var(--font-mono);letter-spacing:.02em;transition:background .25s var(--ease), transform .25s var(--ease);border:none;border-radius:999px;padding:14px 24px;font-size:.8125rem;font-weight:600;display:inline-flex}.resume-page__download:hover,.resume-page__download:focus-visible{background:var(--ink-soft);outline:none;transform:scale(1.02)}.resume-page__label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gray-700);margin:0 0 var(--space-4);font-size:.6875rem;font-weight:600}.resume-page__notables{margin-top:var(--space-2)}.resume-page__notables-list{color:var(--gray-900);flex-direction:column;gap:10px;margin:0;padding:0;font-size:.875rem;line-height:1.55;list-style:none;display:flex}.resume-page__notables-list li{padding-left:18px;position:relative}.resume-page__notables-list li:before{content:"";background:var(--ink);width:8px;height:1px;position:absolute;top:.7em;left:0}.resume-page__roles{gap:var(--space-6);flex-direction:column;display:flex}.resume-page__role{padding-bottom:var(--space-6);border-bottom:1px solid var(--gray-200);flex-direction:column;gap:8px;display:flex}.resume-page__role:last-child{border-bottom:none;padding-bottom:0}.resume-page__role-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;display:flex}.resume-page__role-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:0 .5ch;margin:0;font-size:1.25rem;font-weight:500;line-height:1.2;display:inline-flex}.resume-page__company{color:var(--ink)}.resume-page__sep{color:var(--gray-300);font-weight:400}.resume-page__position{color:var(--gray-700);font-weight:500}.resume-page__dates{font-family:var(--font-mono);color:var(--gray-700);letter-spacing:.02em;white-space:nowrap;font-size:.75rem}.resume-page__role-body{color:var(--gray-900);margin:0;font-size:.9375rem;line-height:1.6}@media (max-width:860px){.resume-page__body{gap:var(--space-7);grid-template-columns:1fr}.resume-page__role-head{flex-direction:column;align-items:flex-start;gap:2px}}@media (prefers-reduced-motion:reduce){.resume-overlay,.resume-page__download{transition:none!important}}@media (max-width:960px){@supports (padding-top:env(safe-area-inset-top)){.safe-area-cover{z-index:10000;pointer-events:none;background:#fff;height:59px;position:fixed;top:0;left:0;right:0}}}.safe-area-cover{display:none}@media (max-width:960px){@supports (padding-top:env(safe-area-inset-top)){.safe-area-cover{display:block}}}@keyframes pg-stage-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pg-content.is-revealing .sidebar__avatar,.pg-content.is-revealing .sidebar__name,.pg-content.is-revealing .sidebar__bio,.pg-content.is-revealing .sidebar__contact,.pg-content.is-revealing .sidebar__actions,.pg-content.is-revealing .filter,.pg-content.is-revealing .grid>.grid-item,.pg-content.is-revealing .cards>.card{opacity:0;animation:pg-stage-in .36s var(--ease-out,cubic-bezier(.2, .7, .2, 1)) forwards}.pg-content.is-revealing .cards>.card{animation-duration:.42s;animation-delay:calc(.34s + (var(--card-index,0) * 70ms))}.pg-content.is-revealing .sidebar__avatar{animation-delay:0s}.pg-content.is-revealing .sidebar__name{animation-delay:60ms}.pg-content.is-revealing .sidebar__bio{animation-delay:.12s}.pg-content.is-revealing .sidebar__contact{animation-delay:.18s}.pg-content.is-revealing .sidebar__actions{animation-delay:.24s}.pg-content.is-revealing .filter{animation-delay:.28s}.pg-content.is-revealing .grid>.grid-item{animation-duration:.42s;animation-delay:calc(.36s + (var(--pg-grid-i,0) * 40ms))}.pg-content.is-revealing .grid>.grid-item:first-child{--pg-grid-i:0}.pg-content.is-revealing .grid>.grid-item:nth-child(2){--pg-grid-i:1}.pg-content.is-revealing .grid>.grid-item:nth-child(3){--pg-grid-i:2}.pg-content.is-revealing .grid>.grid-item:nth-child(4){--pg-grid-i:3}.pg-content.is-revealing .grid>.grid-item:nth-child(5){--pg-grid-i:4}.pg-content.is-revealing .grid>.grid-item:nth-child(6){--pg-grid-i:5}.pg-content.is-revealing .grid>.grid-item:nth-child(7){--pg-grid-i:6}.pg-content.is-revealing .grid>.grid-item:nth-child(8){--pg-grid-i:7}.pg-content.is-revealing .grid>.grid-item:nth-child(n+9){--pg-grid-i:8}@media (prefers-reduced-motion:reduce){.pg-content.is-revealing .sidebar__avatar,.pg-content.is-revealing .sidebar__name,.pg-content.is-revealing .sidebar__bio,.pg-content.is-revealing .sidebar__contact,.pg-content.is-revealing .sidebar__actions,.pg-content.is-revealing .filter,.pg-content.is-revealing .grid>.grid-item,.pg-content.is-revealing .cards>.card{opacity:1;animation:none;transform:none}}@media (max-width:960px){.pg-content.is-revealing .sidebar__avatar,.pg-content.is-revealing .sidebar__name,.pg-content.is-revealing .sidebar__bio,.pg-content.is-revealing .sidebar__contact,.pg-content.is-revealing .sidebar__actions,.pg-content.is-revealing .filter,.pg-content.is-revealing .grid>.grid-item,.pg-content.is-revealing .cards>.card{opacity:1!important;animation:none!important;transform:none!important}.filter:after{display:none}}
